【MATLAB】【数字信号处理】线性卷积和抽样定理

已知有限长序列:x k = 1,2,1,1,0,-3 , h k=[1,-1,1]

,

计算离散卷积和y k =x k*h(k)

程序如下:

复制代码
function [t,x] = My_conv(x1,x2,t1,t2,dt)
%文件名与函数名对应
%自写的卷积函数
x = conv(x1,x2)*dt;
t0 = t1(1) + t2(1);
L = length(x1) + length(x2)-2;
t = t0:dt:(t0+L*dt);
end

clear;
k1 = [0, 1, 2, 3, 4, 5];   %xk的序列号
xk = [1, 2, 1, 1, 0, -3];   %xk的序列值
subplot(311);
stem(k1,xk,'filled');
title('x(k) = [1,2,1,1,0,-3]');
k2 = [0, 1, 2];
hk = [1, -1, 1];
subplot(312);
stem(k2, hk,'filled');
title('h(k) = [1,-1,1]');
[k3,yk] = My_conv(xk, hk, k1, k2, 1);   %调用卷积的函数
subplot(313);
stem(k3,yk,'filled');
title('y(k) 卷积后图像');

运行结果如下:

用MATLAB实现对信号x t = cos⁡*(2* π ×20t) 的抽样。

代码如下:

复制代码
clear;
Signal_Frequency = 20;    %信号频率
Signal_Ts = 0.001; %信号的采样间隔
t = 0 : Signal_Ts : 0.1;

% fs = 10fc
Sample_Frequency = 1 * Signal_Frequency; %采样频率
Sample_Ts = 1 / Sample_Frequency;%抽样的间隔
xt = cos(2*pi * Signal_Frequency * t);
n = 0 : Sample_Ts : 0.1;
xn = cos(2*pi * Signal_Frequency * n);

subplot(321); plot(t,xt); hold on;
stem(n,xn); title('fs = fc');
X1k = fft(xn, Sample_Frequency);
subplot(322); stem(X1k);

% fs = 2fc
Sample_Frequency = 2 * Signal_Frequency; %采样频率
Sample_Ts = 1 / Sample_Frequency;%抽样的间隔
xt = cos(2*pi * Signal_Frequency * t);
n = 0 : Sample_Ts : 0.1;
xn = cos(2*pi * Signal_Frequency * n);
subplot(323); plot(t,xt); hold on;
stem(n,xn); title('fs = 2fc');
X10k = fft(xn, Sample_Frequency);
subplot(324); stem(X10k); title('fs = 2fc频谱');

% fs = 10fc
Sample_Frequency = 10 * Signal_Frequency; %采样频率
Sample_Ts = 1 / Sample_Frequency;%抽样的间隔
xt = cos(2*pi * Signal_Frequency * t);
n = 0 : Sample_Ts : 0.1;
xn = cos(2*pi * Signal_Frequency * n);
subplot(325); plot(t,xt); hold on;
stem(n,xn); title('fs = 10fc')
X10k = fft(xn, Sample_Frequency);
subplot(326); stem(X10k); title('fs = 10fc频谱');

运行结果如下:

已知序列*[x* k]={1,1,1} ,对其频谱X( e j Ω*)* 进行抽样,分别取N=2,3,10观察频域抽样造成的混叠现象。

代码如下:

复制代码
clear;
xn = [1, 1, 1];

X2k = fft(xn,2);
subplot(311);
stem(X2k,'filled');

X3k = fft(xn,3);
subplot(312);
stem(X3k,'filled');

X10k = fft(xn, 10);
subplot(313);
stem(X10k,'filled');

运行结果如下:

相关推荐
英英_7 分钟前
python 自动化教程
开发语言·python·自动化
先做个垃圾出来………11 分钟前
汉明距离(Hamming Distance)
开发语言·python·算法
苦学编程的谢11 分钟前
多线程代码案例-1 单例模式
java·开发语言·单例模式
yaoxin52112315 分钟前
80. Java 枚举类 - 使用枚举实现单例模式
java·开发语言·单例模式
hie9889419 分钟前
C#与KepOPC通讯
开发语言·c#
软件算法开发35 分钟前
基于自适应交叉概率和变异概率遗传算法的地铁车辆使用寿命和璇修次数优化matlab仿真
matlab·遗传算法·自适应交叉概率·自适应变异概率·璇修次数·使用寿命
kp000001 小时前
PHP弱类型安全漏洞解析与防范指南
android·开发语言·安全·web安全·php·漏洞
卡戎-caryon1 小时前
【C++】15.并发支持库
java·linux·开发语言·c++·多线程
90后小陈老师1 小时前
WebXR教学 09 项目7 使用python从0搭建一个简易个人博客
开发语言·python·web
tyatyatya1 小时前
MATLAB 神经网络的系统案例介绍
开发语言·神经网络·matlab