基本信号的产生和实现

 1. 利用Matlab产生下列连续信号并作图。

%(1)代码如下
t = -1 : 0.01 : 5;
x = -2 * ((t - 1) >= 0);
plot(t, x)
axis([-1 5 -3 1])

%(2)代码如下
t = 0 : 0.01 : 200;
x = cos(0.1 * pi * t).*cos(0.8 * pi * t);
plot(t, x)
axis([0 200 -2 2])

运行结果:

(1)                               

 (2)

2. 利用Matlab产生下列离散序列并作图。

%(1)代码如下
k = -14 : 15;
x = (-5 <= k & k <= 5);
stem(k, x)
axis([-14 15 -1 2])

%(2)代码如下
k = -19 : 20;
x = (0.9.^k).*(sin(0.25 * pi * k)+cos(0.25 * pi *k));
stem(k, x)
axis([-20 21 -15 10])

 运行结果:

(1)

(2)

3.已知序列x[k] = [1, 2, 0, -1, 3, 2; k = -2, -1, 0, 1, 2, 3],h[k] = [2, 3, -1, 0, 2, 1; k = -2, -1, 0, 1, 2, 3] 

%(1)代码如下
k = [-2 -1 0 1 2 3];
x = [1 2 0 -1 3 2];
h = [-2 3 -1 0 2 1];
y = conv(x,h);
stem((0:length(y)-1),y)

%(2)代码如下
k = [-2 -1 0 1 2 3];
x = [1 2 0 -1 3 2];
h = [-2 3 -1 0 2 1];
y = conv(x,h);
stem((0:length(y)-1),y)
a = xcorr(x,y);
m = (length(a) -1)/2;
stem((-m:m),a)

运行结果:

(1)

(2)

4、音频去噪:

[datal,fs] = audioread("yinpin.mp3");
time = (1:length(datal))/fs;%计算播放时间
subplot(2, 1, 1);
plot(time, datal);%绘制yk波形
M = 50;
b = ones(M,1)/M;
a= 1;
yk = filter(b, a, datal);
subplot(2, 1, 2);
plot(time,yk)

运行结果:

    

 5、绘制信号的时域波形和频谱:

[datal,Fs] = audioread("yinpin.mp3");
subplot(2, 2, 1);
plot(datal);
datal = datal(:,1);
datal = datal';
N = length(datal);%求取抽样点数
t1 = (0:N-1)/Fs;%显示实际时间
y1 = fft(datal);%对信号进行傅里叶变换
f1 = Fs/N*(0:round(N/2)-1);%显示实际频点的一半,频域映射,转化为HZ
subplot(2, 2, 2);
plot(t1,datal,'g');%绘制时域波形
xlabel('时间/s');ylabel('幅值');
title('信号的波形');
subplot(2, 2, 3);
plot(f1,abs(y1(1:round(N/2))));
xlabel('频率/Hz');ylabel('幅值');
title('信号的频谱');

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风起晨曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值