matlab数字信号处理(1)——正弦信号生成与时域分析

本文介绍了如何使用matlab生成正弦信号,包括单频和多频信号的生成,并进行了时域分析。通过傅里叶变换验证了信号的频域特性,讨论了采样率和采样点数对结果的影响。
摘要由CSDN通过智能技术生成

写在前面

最近一直在用matlab在所信号处理算法的仿真工作,这一系列博客主要会分详一下遇到的一些问题及解决办法,和一些常用的功能模块的实现以及分分享。

一、正弦信号生成

一段正弦信号,主要设计这些参数的设置:

  • 采样率:理论上来说要满足奈奎斯特采样频率,但是在实际使用中,一般都选择更高倍数,防止信号失真
  • 采样时间:决定信号长度or点数
  • 信号形式:单频or多频叠加,原理

二、matlab实现

2.1 生成单频正弦信号

按照上节所说的内容,进行代码的编写就好了

%生成单频正弦信号
function [signal] = Any_freq_signal(fs , t, f ,Amp,phase)%采样率,时间,频率,幅值,相位(deg)
    dt = 1/fs;
    N = t*fs;
    t = 0:dt:(N-1)*dt;
    signal = Amp*sin(2*pi*f*t+phase/180*pi);
end

上面代码部分可生成特定频率和长度的单频正弦信号,但是在实际情况下吗,信号并不是理想的,因此通常会加入不同信噪比的噪声来进行对比测试,这里可以在以后的内容中展开介绍,

2.2 生成多频正弦信号

当我们想要的信号是多个频率的正弦叠加时,最简单的方法当然是利用循环把每个正弦信号叠加起来,但是这种方法耗时较多,可以考虑用矩阵的方式实现。

%生成多频正弦信号
function [signal] = Mult_freq_signal(fs , t, f ,Amp,phase)%采样率,时间,频率,幅值,相位(deg)
    dt = 1/fs;
    N = t*fs;
    t = (0:dt:(N-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值