数字信号处理实验,常用信号产生,MATLAB实现
实验1 常用信号产生
实验目的:
学习用MATLAB编程产生各种常见信号。
实验内容:
1、 矩阵操作:
输入矩阵:
x=[1 2 3 4;5 4 3 2;3 4 5 6;7 6 5 4]
引用 x的第二、三行;
引用 x的第三、四列;
求矩阵的转置;
求矩阵的逆;
2、 单位脉冲序列:
产生δ(n)函数;
产生δ(n-3)函数;
3、 产生阶跃序列:
产生U(n)序列;
产生U(n-n0)序列;
4、 产生指数序列: 3 x(n)=0.5 4
5、 产生正弦序列:
x=2sin(2π*n/12+π/6)
6、 产生取样函数:
7、 产生白噪声:
产生[0,1]上均匀分布的随机信号:
产生均值为0,方差为1的高斯随机信号:
8、 生成一个幅度按指数衰减的正弦信号: x(t)=Asin(w0t+phi).*exp(-a*t)
9、 产生三角波:
n
实验要求:
打印出程序、图形及运行结果,并分析实验结果。 常用信号产生
基本矩阵操作:
输入矩阵:
x=[1 2 3 4;5 4 3 2;3 4 5 6;7 6 5 4] 引用 x的第二、三行:
x([2 3],:)
引用 x的第三、四列:
数字信号处理实验,常用信号产生,MATLAB实现
x(:,[3 4])
求矩阵的转置:
x'
求矩阵的逆:
y=inv(x)
单位脉冲序列:
产生δ(n)函数:
n=-10:10;
x=[zeros(1,10),1,zeros(1,10)];
stem(n,x)
产生δ(n-3)函数:
n=-10:10;
x=[zeros(1,13),1,zeros(1,7)];
stem(n,x)
产生阶跃序列:
产生U(n)序列:
n=-5:10;
x=[zeros(1,5),ones(1,11)];
stem(n,x)
产生U(n-n0)序列:
n=-2:30;
x=[zeros(1,7),ones(1,26)];
stem(n,x)
产生指数序列: 3 x(n)=0.5 4
n=-10:10;
x=0.5*(3/4).^n;
stem(n,x)
产生正弦序列:x=2sin(2π*n/12+π/6) n=-10:10;
x=2*sin((2*pi/12)*n+pi/6);
stem(n,x)
产生取样函数:
t=-10:1/500:10;
x=sinc(t/pi);
plot(t,x)
产生白噪声:
产生[0,1]上均匀分布的随机信号:
t=0:0.01:1;
plot(t,rand(1,length(t)))
产生均值为0,方差为1的高斯随机信号: t=0:0.01:1; n
数字信号处理实验,常用信号产生,MATLAB实现
plot(t,randn(1,length(t)));
生成一个幅度按指数衰减的正弦信号:
x(t)=Asin(w0t+phi).*exp(-a*t) A=5;f0=4;phi=0;
w0=2*pi*f0;
a=6;
t=0:0.01:1;
x=A*sin(w0*t+phi).*exp(-a*t);
plot(t,x)
产生三角波:
t=-3:0.01:3;
plot(t,tripuls(t,2,0)); axis([-2,4,0,2])
t=-3:0.01:3;
plot(t,tripuls(t,2,0));
plot(t,tripuls(t-5/2,1,-1));
axis([-2,4,0,2])
t=-3:0.01:3;
plot(t,tripuls(t,2,0));
hold on;
plot(t,tripuls(t-5/2,1,-1));
hold off;
axis([-2,4,0,2])
matlab下绘图的简单示例
示例一(用plot同时绘制两条曲线)
x=0:0.01:2*pi
plot(x,sin(x),'green')
hold on
plot(x,sin(2*x),'red')
示例二(用stem绘制多个序列)
n=0:50;
A=444.128;
数字信号处理实验,常用信号产生,MATLAB实现
a=50*sqrt(2.0)*pi;
T=0.001;
w0=50*sqrt(2.0)*pi;
x=444.128*exp(-a*n*T).*sin(w0*n*T); X=fft(x);
% Draw x,abs(X),angle(X)
hold on
stem(x)
stem(abs(X),'fill','r-.')
stem(angle(X),'fill','g-.')
示例三(从复平面看幅频特性)
th = (0:127)/128*2*pi;
x = cos(th);
y = sin(th);
f = abs(fft(ones(10,1),128)); stem3(x,y,f','d','fill')
view([-65 30])
xlabel('Real')
ylabel('Imaginary')
zlabel('Amplitude')
title('Magnitude Frequency Response') rotate3d on

