>  기사  >  컴퓨터 튜토리얼  >  matlab 오디오 처리: WAV 형식 스펙트로그램 및 시간 영역 파형을 생성하는 프로그램

matlab 오디오 처리: WAV 형식 스펙트로그램 및 시간 영역 파형을 생성하는 프로그램

王林
王林앞으로
2024-01-22 19:12:061385검색

matlab 오디오 처리: WAV 형식 스펙트로그램 및 시간 영역 파형을 생성하는 프로그램

WAV 형식 오디오 파일의 스펙트로그램을 만들고 시간 영역 파형 다이어그램을 만드는 Matlab 프로그램

안녕하세요%, 이 프로그램은 mywav.wav 파일을 읽고 스펙트럼과 파형을 표시합니다. mywav.wav 파일은 너무 길어서는 안 됩니다. 그렇지 않으면 작업 속도가 매우 느려집니다.

[y,Fs,bits]=wavread('mywav.wav'); % 읽기 신호, 샘플링 속도 및 샘플링 비트 수.

y=y(:,1);% 여기서는 귀하의 음성이 바이노럴이라고 가정합니다. 저는 분석을 위해 모노만 사용합니다. 다른 채널을 분석하려면 y=y(:,2 )

로 변경하세요.

sigLength=길이(y);

Y = fft(y,sigLength);

Pyy = Y.* conj(Y) / sigLength;

halflength=floor(sigLength/2);

f=Fs*(0:절반길이)/sigLength;

Figure;plot(f,Pyy(1:halflength+1));xlabel('주파수(Hz)');

t=(0:sigLength-1)/Fs;

Figure;plot(t,y);xlabel('시간(들)');

MATLAB을 기반으로 한 연속 신호의 스펙트럼 분석

예를 들어보고 직접 바꿔보세요

fs=1000;% 샘플링 주파수 설정

N=1024;% 데이터 길이 설정

i=0:N-1;

t=i/fs;

f=100;%는 정현파 신호 주파수를 설정합니다

%정현파 신호 생성

x=sin(2*pi*f*t);

서브플롯(231);

plot(t,x); %는 정현파 신호의 시간 영역 파형을 만듭니다

축([0,0.01,-1,1]);

xlabel('t');

ylabel('y');

title('정현파 신호 시간 영역 파형');

그리드;

%FFT 변환을 수행하고 스펙트로그램을 만듭니다

y=fft(x,N); % fft 변환 수행

mag=abs(y);% 진폭

f=(0:N-1)*fs/N; % 가로 좌표 표현은 f=(0:M-1)*Fs/M;

서브플롯(232);

plot(f,mag);% 스펙트로그램 만들기

축([0,100,0,80]);

xlabel('주파수(Hz)');

ylabel('크기');

title('정현파 신호 진폭 스펙트럼 다이어그램');

그리드;

% 제곱평균제곱근 스펙트럼

sq=abs(y);

그림(1);

서브플롯(233);

플롯(f,sq);

xlabel('주파수(Hz)');

ylabel('제곱 평균 제곱 스펙트럼')

title('정현파 신호의 평균 제곱 스펙트럼');

그리드;

% 전력 스펙트럼

전력=제곱^2;

그림(1);

서브플롯(234);

plot(f,power);

xlabel('주파수(Hz)');

ylabel('파워 스펙트럼');

title('정현파 신호 전력 스펙트럼');

그리드;

% 로그 스펙트럼

ln=log(제곱);

그림(1);

서브플롯(235);

플롯(f,ln);

xlabel('주파수(Hz)');

ylabel('로그 스펙트럼');

title('정현파 신호의 로그 스펙트럼');

그리드;

% IFFT를 사용하여 원래 신호를 복원

xifft=ifft(y);

magx=실제(xifft);

ti=[0:길이(xifft)-1]/fs;

서브플롯(236);

plot(ti,magx);

xlabel('t');

ylabel('y');

title('IFFT로 변환된 정현파 신호 파형')

그리드;

위 내용은 matlab 오디오 처리: WAV 형식 스펙트로그램 및 시간 영역 파형을 생성하는 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 docexcel.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제