一段10s立体声音频,采样率位8000Hz,已知频率为1000Hz
1 clc; 2 clear; 3 [data, Fs] = audioread('1khz_stereo_8000.wav'); 4 fs=Fs; 5 N=4000; 6 n=2*fs:2*fs+N-1; %从第2s结束开始取样 7 f=(n-2*fs)*fs/N; %数字频率转换成模拟频率 本来应该是n/N * fs,但由于n是从第三个周期开始的 8 temp=data(:,1); %取单个声道样本 9 x=temp(n); 10 y=fft(x,N); 11 mag=abs(y); %求得Fourier变换后的振幅 12 plot(f,mag); 13 [max,pos] = max(mag);%找到幅值最高点,记录所在横坐标 14 freq = f(pos); %幅值最高对应基频分量 15 disp(freq); 16 grid on;
频谱图为