matlab关于滤波器的程序以及函数解析解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号的采集程序
[y,Fs,Nbits]=wavread('福建工程学院.wav';%读出信号,采样率,采样位数
wavplay(y,Fs;
s1=wavread('福建工程学院.wav';
y=resample(s1,80,441; %在Windows 下录制的语音信号的采样频率为44100Hz,为了能够更好的分析语音信号,将语音信号的频率重采样为8000Hz
sigLength=length(y;%语音信号长度
Y = fft(y,sigLength;%快速福利叶变换
Pyy = Y.* conj(Y / sigLength;%conj复数共轭
halflength=floor(sigLength/2;%负无穷取整
f=8000*(0:halflength/sigLength;
figure;plot(f,Pyy(1:halflength+1;
axis([0 1000 0 0.02];
xlabel('Frequency(Hz';%画出频域波形
t=(0:sigLength-1/Fs;
figure;plot(t,y;xlabel('Time(s';
噪音信号在MA TLAB中的频谱分析程序
s1=wavread('福建工程学院.wav';
y=resample(s1,80,441;
sigLength=length(y; %语音信号长度
for k=1:1:sigLength
fs=8000;
noise(k=0.005*sin(2*pi*900*k/fs;%正弦函数的噪声信号
x(k=y(k+noise(k;%噪声叠加
end
Y = fft(x,sigLength;%快速福利叶变换
Pyy = Y.* conj(Y / sigLength; %conj复数共轭
halflength=floor(sigLength/2; %负无穷取整
f=8000*(0:halflength/sigLength;
figure;plot(f,Pyy(1:halflength+1;
axis([0 1000 0 0.02];
xlabel('Frequency(Hz'; %画出频域波形
t=(0:sigLength-1/fs;
figure;plot(t,x;xlabel('Time(s';%画出时域波形
MATLAB中低通滤波器仿真程序
Fs=8000; %采样频率
N=35; %取样点数tao=(N-1/2;
wc=2*600/8000; %N是奇数h(n为偶数,采用N为奇数的I型,取样化归一频率
m=fix(wc/(2/N+1;%取整
omega=[0:N-1]*2*pi/N; %取N个采样点
ABS_H=[ones(1,m,0.2,zeros(1,N-2*m-1,0.2,ones(1,m-1];
H=ABS_H.*exp(-j*tao.*omega;
h=ifft(H; %ifft函数实现由频域抽样点计算其对应时域序列
figure(1; %打开窗口1
subplot(2,1,1;%图形显示分割窗口stem(omega,abs(H;%绘制低通频谱采样图
title('理想低通频谱取样点'
subplot(2,1,2;stem([0:N-1],real(h;%绘出低通脉冲响应图title('频率取样法设计的低通脉冲响应'
Hh=fft(h,512;%对信号进行傅立叶变换
Hh_db=20*log10(abs(Hh;
figure(2;
omega=[0:255]*pi/256;
plot(omega,Hh_db(1:256;
title('滤波器的低通衰耗特性'
set(gca,'ytick',[(-120:20:-20,-3,0];
s1=wavread('福建工程学院.wav';
y=resample(s1,80,441;
sigLength=length(y;
for k=1:1:sigLength
fs=8000;
noise(k=0.005*sin(2*pi*900*k/fs;
x(k=y(k+noise(k;%噪声信号的叠加
end
Y = fft(x,sigLength;%对信号进行傅立叶变换Pyy = Y.* conj(Y / sigLength;
halflength=floor(sigLength/2;
f=8000*(0:halflength/sigLength;
figure;plot(f,Pyy(1:halflength+1;
axis([0 1000 0 0.02];
xlabel('Frequency(Hz';
a=conv(x,h; %相乘运算
sigLength=length(a;
Y = fft(a,sigLength; %对信号进行傅立叶变换Paa = Y.* conj(Y / sigLength;
halflength=floor(sigLength/2;
f1=8000*(0:halflength/sigLength;
figure;plot(f1,Paa(1:halflength+1; axis([0 1000 0 0.02];
xlabel('Frequency(Hz';