数字信号处理的matlab实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理的matlab实现

简谐振动的特性完全取决于振幅、频率、初相位角。

x1 = (0.5).^t;

x1 = 0.5* sin(2*pi*f*t+pi/4);

x1 = [(n - n0) >= 0]; %阶跃信号

x1 = [(n-n0) == 0]; %脉冲信号

y = sin(pi * x +eps)./(pi * x +eps);%sinc function,eps是matlab系统的精度,这里防止被零除

n = [-10:10];

alpha = -0.1 + 0.3 * j;

x = exp(alpha * n);%复指数信号

rx = real(x);

ix = imag(x);

mx = abs(x); %振幅

px = (180/pi) * angle(x); % 相位,并转换为度

x = rand(1,10);

x = randn(1,10); %guass series numbers

xp = [x x x x x];

x2 = fliplr(x);%左右折叠

第二章信号

%test sampling rule

dt = 0.01; %samping frequence for draw 100Hz

t = 0:dt:1;

f = 10;

x = sin(2 * pi * f * t + 0.3);

dt1 = 0.1; t1 = 0:dt1:1;%10Hz

x1 = sin(2 * pi * f * t1 + 0.3);

dt2 = 0.05; t2 = 0:dt2:1;%10Hz

x2 = sin(2 * pi * f * t2 + 0.3);

subplot(3,1,1), plot(t, x);

title('f = 10Hz, fs = 100Hz');

subplot(3,1,2), plot(t1, x1), hold on, stem(t1, x1), plot(t, x);

title('f = 10Hz, fs = 10Hz');

subplot(3,1,3), plot(t2, x2), hold on, stem(t2, x2), plot(t, x);

title('f = 10Hz, fs = 20Hz');

基本信号:

x1 = (0.5).^t; %指数信号

x1 = 0.5* sin(2*pi*f*t+pi/4); %余弦信号

x1 = [(n - n0) >= 0]; %阶跃信号

x1 = [(n-n0) == 0]; %脉冲信号

y = sin(pi * x +eps)./(pi * x +eps);%sinc function,eps是matlab系统的精度,这里防止被零除,sinc函数信号

n = [-10:10];

alpha = -0.1 + 0.3 * j;

x = exp(alpha * n);%复指数信号

rx = real(x);

ix = imag(x);

mx = abs(x); %振幅

px = (180/pi) * angle(x); % 相位,并转换为度x = rand(1,10); %随机信号

x = randn(1,10); %高斯随机序列

xp = [x x x x x]; %复制

信号运算:

时移,倒置,

尺度改变x2 = fliplr(x);%左右折叠

信号加

信号微分和积分

% test2 微分和积分

clear all; clc;

dt = 0.01; t = 0:dt:4*pi;

y = sin(t);

y1 = diff(y)/dt; % 微分,dt为采样间隔

for ii = 1:length(y) %积分,dt为采样间隔

y2(ii) = sum(y(1:ii)) * dt;

end

subplot(3,1,1), plot(t, y);

subplot(3,1,2), plot(t, [0 y1]); %微分后信号比原信号少一个元素,用零补

subplot(3,1,3), plot(t,y2);

grid on;

xlabel('Time/s');

ylabel('Amplitude');

信号乘

注意:若参与信号乘的两个信号长度不一样,则必须进行转换之后才能在matlab中进行操作。

% test3 信号乘,滤波器滤波。注意振幅谱的绘制方法

clear all; clc;

dt = 0.02; df = 1/(6000 * dt);% 采样间隔为0.02s,则2min内数据个数为6000,df为信号频率分辨率n = 0:2999; %折叠频率之前(取前3000个)数据进行操作

f = n * df; %给出频率序列

sig = rand(1, length(n)); % 运用随机函数产生信号振幅谱

filt = [ones(1, 5/df), zeros(1, (length(n) - 5/df))]; % 理想滤波器幅频响应函数

subplot(3,1,1), plot(n * df, sig);

subplot(3,1,2), plot(n * df, filt, 'LineWidth', 3);

subplot(3,1,3), plot(n * df, sig .* filt);

相关文档
最新文档