Unverified Commit 517374da authored by Justice's avatar Justice

initial commit for backup

parents
Pipeline #1862 failed with stages
clc
clear
pkg load signal
[X, Fs] = audioread("v3.wav");
L = length(X);
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
f = f(1:21000);
P1 = P1(1:21000);
figure(1)
plot(f,(P1.^2) /L );
set(gcf,'position',[10,10,1024,720])
title('Power Spectrum for man sound')
xlabel('f (Hz)')
ylabel('Power')
[W, WFs] = audioread("v10.wav");
WL = length(W);
WY = fft(W);
WP2 = abs(WY/WL);
WP1 = WP2(1:WL/2+1);
WP1(2:end-1) = 2*WP1(2:end-1);
Wf = WFs*(0:(WL/2))/WL;
Wf = Wf(1:21000);
WP1 = WP1(1:21000);
figure(2)
plot(Wf,(WP1.^2) /WL );
set(gcf,'position',[1024,720,1024,720])
title('Power Spectrum for woman sound')
xlabel('f (Hz)')
ylabel('Power')
\ No newline at end of file
%%Time specifications:
[x, Fs] = audioread("v0.wav");
dt = 1/Fs; % seconds per sample
N = length(x);
%%Fourier Transform:
X = fftshift(fft(x));
%%Frequency specifications:
dF = Fs/N; % hertz
f = -Fs/2:dF:Fs/2-dF; % hertz
%%Plot the spectrum:
figure;
plot(f,abs(X)/N);
xlabel('Frequency (in hertz)');
title('Magnitude Response');
\ No newline at end of file
\relax
\providecommand\zref@newlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {1}تشخیص جنسیت از روی صدا}{1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1} تجزیه و تحلیل طیفی به کمک تبدیل فوریه}{1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2} بررسی دو مورد از صدا ها}{1}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces طیف توان برای صدای ضبط شده مرد شماره 3\relax }}{2}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces طیف توان برای صدای ضبط شده زن شماره 10\relax }}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}اوج صدا}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}تشخیص جنسیت}{4}}
This diff is collapsed.
File added
\documentclass[paper=a4, fontsize=11pt]{article}
\usepackage{setspace}
\usepackage{wrapfig}
\usepackage{caption}
\usepackage{cleveref}
\usepackage{graphicx}
\graphicspath{ {images/} }
\usepackage{xepersian}
\settextfont[Path=fonts/]{Samim.ttf}
\setlatintextfont{Chilanka}
\begin{document}
\setstretch{2}
\begin{titlepage}
\begin{center}
\vspace*{1cm}
\textbf{پروژه امتیازی درس سیگنال‌ها و سیستم‌ها}
\vspace{0.5cm}
الگوریتم‌هایی برای پردازش صدا
\vspace{2cm}
\textbf{علی فرجی}
\vspace{2cm}
استاد درس دکتر مهدی راستی
\vfill
\includegraphics[width=0.4\textwidth]{aut}
دانشکده مهندسی کامپیوتر\\
بهمن ماه سال 1398
\end{center}
\end{titlepage}
\section{تشخیص جنسیت از روی صدا}
\subsection{ تجزیه و تحلیل طیفی به کمک تبدیل فوریه}
تبدیل فوریه یکی از مفید ترین ابزار های ریاضی در زمینه های مختلف علوم و مهندسی است. تبدیل فوریه در پردازش سیگنال، فیزیک، ارتباطات، مباحث نوری ، پردازش صدا و تصویر و خیلی از زمینه های دیگر کاربرد دارد.
این تکنیک، یک تابع یا مجموعه ای از اطلاعات را از حوزه زمان یا نمونه (sample) به حوزه فرکانس منتقل می کند. این بدان معناست که تبدیل فوریه میتواند بخش فرکانسی را برای یک مجموعه از اطلاعات زمانی نمایش دهد.
به کمک تبدیل فوریه و نمودار طیف فرکانسی میتوان فرکانس هایی که بیشترین تاثیر را در ساخت سیگنال دارند شناخت و مثلا در موسیقی نت ها و صدا ها را تشخیص داد و یا در طیف سنجی ها مثلا در علم شیمی به عناصر موجود پی برد.
\subsection{ بررسی دو مورد از صدا ها}
\ref{pic11}
همان طور که در اول تعریف پروژه یک نمودار آورده شده است ما نیز با توجه به شکل های بدست آمده به آن پی میبریم مثلا برای مرد شکل 1 حاصل که مطابق با نمودار است زیرا یک پیک بزرگ اطراف 120 و یک پیک کمی کوچکتر اطراف 220 دارد.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{man1}
\caption{طیف توان برای صدای ضبط شده مرد شماره 3}
\end{figure}
همچنین مشاهده می شود (شکل 2) که برای زن فرکانس های بدست آمده اطراف 210 هرتز قدرت بیشتری دارند.
پس میتوان با استفاده از نقاط ماکسیمم های طیف فرکانس به جنسیت صاحب صدا پی برد.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{woman1}
\caption{طیف توان برای صدای ضبط شده زن شماره 10}
\end{figure}
\subsection{اوج صدا}
میتوانیم تابع ماکزیمم را روی مقدار اندازه تبدیل فوریه صدا بزنیم تا مقدار اوج را به ما بدهد.
\subsection{تشخیص جنسیت}
پس از پیدا کردن اوج و مقدار ایندکس آن میتوان فرکانس آن را حساب کرد سپس میتوان با توجه به مقدار این فرکانس زن یا مرد بودن را تشخیص داد.
الیته ما چون فقط بر اساس یک ماکزیمم درحال تصمیم گیری هستیم خطای بالایی داریم بهتر است برای بهینه کردن و افزایش دقت مجموعه ای از ماکسیمم ها و مینیمم های محلی را پیدا کنیم و الگوی انها را با الگوی اکسترمم های محلی هر جنسیت تطابق دهیم.
برای این کار میتوان از تابع \lr{findpeaks} استفاده کرد که در نرم افزار \lr{octave} در پکیج \lr{signal} است.
\section{ الگوریتم بهبود صدا}
\end{document}
\ No newline at end of file
File added
File added
File added
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment