matlab下的数字信号处理实现示例
J3KdCnWx.pdf
(111.9 KB, 下载次数: 131
)
附录 C MATLAB 下的数字信号处理实现示例
本部分内容是本讲义中数据信号处理实验部分实验项目在 MatLab 下实现代码。之所以
提供这些代码,是希望通过研究以下代码,能够更快、更好地掌握用MatLab 进行数据信号
处理实验的方法;提高实验质量。希望同学们在阅读代码的时候,注意学习方法,在最短的
时间内熟悉MatLab,提高应用能力。示例中有些部分是实验项目中的内容实现,有些是一
些典型例题的实现。研究示例代码,倡导个性化编程是我们的目标,希望同学们能在在进行
实验项目的过程中提高MatLab 的应用能力;在学习MatLab 编程的同时加强对数字信号处
理有关实验项目的理解。
以下代码段均在 MatLab5.3 下调试通过,但是由于排版或其他一些原因,可能有部分代
码段不能得到正常结果。您可以在“http://202.38.75.33/dsp/matlab/”得到本讲义的修订内容,
同时可以在这个网址获取所有代码。
附录C1 信号、系统和系统响应
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; %ω符号在MatLab 中不能输入,用w 代替
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, 0.4, 2.0734, 1 0 A = α = Ω = T =
n=0:50; %定义序列的长度是50
A=1; a=0.4; w0=2.0734; T=1; %设置信号有关的参数和采样率T
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(angX) ; title (‘单位冲击信号的相位谱’)
3、矩形序列
n=1:5; 0x=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)的相位谱
subplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱’)
4、特定冲击串
x(n) =δ (n) + 2.5δ (n ?1) + 2.5δ (n ? 2) +δ (n ? 3)
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(‘单位冲击信号序列’);
[此贴子已经被作者于2009-5-12 1:53:24编辑过]