matlab中关于数字滤波器的函数介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB下的数字信号处理实现示例
一信号、系统和系统响应
1、理想采样信号序列
(1)首先产生信号x(n),0<=n<=50
n=0:50; %定义序列的长度是50
A=444.128; %设置信号有关的参数
a=50*sqrt(2.0)*pi;
T=0.001; %采样率
w0=50*sqrt(2.0)*pi;
x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形
subplot(3,1,1);stem(x); %绘制x(n)的图形
title(‘理想采样信号序列’);
(2)绘制信号x(n)的幅度谱和相位谱
k=-25:25;
W=(pi/12.5)*k;
X=x*(exp(-j*pi/12.5)).^(n’*k);
magX=abs(X); %绘制x(n)的幅度谱
subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱’);
angX=angle(X); %绘制x(n)的相位谱
subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱’)(3)改变参数为:1,0734.2,4.0,10==Ω==TAα
n=0:50; %定义序列的长度是50
A=1; %设置信号有关的参数
a=0.4;
T=1; %采样率
w0=2.0734;
x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形
subplot(3,1,1);stem(x); %绘制x(n)的图形
title(‘理想采样信号序列’);
k=-25:25;
W=(pi/12.5)*k;
X=x*(exp(-j*pi/12.5)).^(n’*k);
magX=abs(X); %绘制x(n)的幅度谱
subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱’);
angX=angle(X); %绘制x(n)的相位谱
subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱’)
2、单位脉冲序列
在MatLab中,这一函数可以用zeros函数实现:
n=1:50; %定义序列的长度是50
x=zeros(1,50); %注意:MATLAB中数组下标从1开始
x(1)=1;
close all;
subplot(3,1,1);stem(x);title(‘单位冲击信号序列’);
k=-25:25;
X=x*(exp(-j*pi/12.5)).^(n’*k);
magX=abs(X); %绘制x(n)的幅度谱
subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱’);
angX=angle(X); %绘制x(n)的相位谱
subplot(3,1,3);stem(ang X) ; title (‘单位冲击信号的相位谱’)
3、矩形序列
n=1:50
x=sign(sign(10-n)+1);
close all;
subplot(3,1,1);stem(x);title(‘单位冲击信号序列’);
k=-25:25;
X=x*(exp(-j*pi/25)).^(n’*k);
magX=abs(X); %绘制x(n)的幅度谱
subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱’);
angX=angle(X); %绘制x(n)的相位谱
su bplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱’)
4、特定冲击串:)3()2(5.2)1(5.2)()(−+−+−+=nnnnnxδδδδ
n=1:50; %定义序列的长度是50
x=zeros(1,50); %注意:MATLAB中数组下标从1开始
x(1)=1;x(2)=2.5;x(3)=2.5;x(4)=1;
close all;
subplot(3,1,1);stem(x);title(‘单位冲击信号序列’);
k=-25:25;
X=x*(exp(-j*pi/12.5)).^(n’*k);
magX=abs(X); %绘制x(n)的幅度谱
subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱’);
angX=angle(X); %绘制x(n)的相位谱
subplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱’)
5、卷积计算:Σ+∞−∞=−=∗=mmnhmxnhnxny)()()()()(
在MATLAB中。提供了卷积函数conv,即y=conv(x,h),调用十分方便。例如:系统:)3()2(5.2)1(5.2)()(−+−+−+=nnnnnhbδδδδ
信号:500),sin()(0<≤Ω=−nnTAetxnTaα
n=1:50; %定义序列的长度是50
hb=zeros(1,50); %注意:MATLAB中数组下标从1开始
hb(1)=1;hb(2)=2.5;hb(3)=2.5;hb(4)=1;
close all;
subplot(3,1,1);stem(hb);title(‘系统hb[n]’);