matlab数字信号处理的采样用程序怎么实现

毕业设计的问题 希望有人仔细回答我

第1个回答  2013-05-15
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(‘单位冲击信号序列’);
相似回答