LFM信号加噪、时频分析、滤波

这篇具有很好参考价值的文章主要介绍了LFM信号加噪、时频分析、滤波。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

线性调频(Linear Frequency Modulation,LFM)信号具有很大的时宽带宽积,可获得很大的脉冲压缩比,是雷达系统和声呐系统广泛采用的一种信号形式。
LFM信号的数学表达式为:
LFM信号加噪、时频分析、滤波
其中,A为信号幅度,t为时间,T为脉冲持续时间(脉冲宽度),fc为载波频率,K为信号的线性调频率,rect()为矩形窗函数,数学表达式如下:
LFM信号加噪、时频分析、滤波
假设信号带宽B=10MHz,脉冲宽度T=100us,载波频率fc=100MHz,采样频率为fs=2B=20MHz。线性调频率K=B/T.

设计要求如下:
1.用Matlab对该参数的LFM信号进行时频分析,得出结论;
2.对信号噪声干扰(单一频率噪声或高斯白噪声),对加噪后的信号时频分析;
3.设计合适的滤波器,对含噪的LFM信号进行滤波,比较滤波前后的效果。

1.LFM信号的时频分析

线性调频(LFM)信号是指瞬时频率随时间成线性变化的信号,也称为Chirp信号。表达式中han’you含有时间t的项对t求导得到K*t,即瞬时频率。在Matlab中,生成了2000点长的LFM信号,绘制实部、虚部、相位、瞬时频率如下图:
LFM信号加噪、时频分析、滤波
LFM信号的时域频域波形如下:
LFM信号加噪、时频分析、滤波

2.加入噪声干扰

为了比较不同种类的噪声对信号的影响,分别加入频率为6MHz的噪声和高斯白噪声(加噪后SNR=10dB)。
加入单一频率噪声的时域图频谱图如下:
LFM信号加噪、时频分析、滤波
加入高斯白噪声的时域图、频谱图如下:
LFM信号加噪、时频分析、滤波

3.含噪LFM信号滤波

3.1 滤除单一频率噪声

利用Matlab里的Filter Design工具箱,设计一个IIRLPF,其低通频率为5500Hz,截止频率为5700Hz,阻带衰减为40dB。
LFM信号加噪、时频分析、滤波
将含有单一频率的信号通过该滤波器,观察输出的时域图和频域图。6000Hz频率噪声明显滤除了,但是信号存在部分失真。
LFM信号加噪、时频分析、滤波

3.2 滤除信号中的高斯白噪声

由于高斯白噪声的频率在LFM信号的任何频率都覆盖,所以不能用滤波器的方法滤波。比较常用的方法是自适应信号滤波,例如LMS滤波、RLS滤波等。原理在此不过多赘述。本文采用RLS滤波方法。
在Matlab编写的RLS滤波程序如下:

function [e,w]=my_rls(lambda,M,u,d,delta)
% recursive least squares,rls.
% Call:
% [e,w]=rls(lambda,M,u,d,delta)
%
% Input arguments:
% lambda = constant, (0,1]
% M = filter length, dim 1x1
% u = input signal, dim Nx1
% d = desired signal, dim Nx1
% delta = constant for initializaton, suggest 1e-7.
%
% Output arguments:
% e = estimation error, dim Nx1
% w = final filter coefficients, dim Mx1
% Step1:initialize
w=zeros(M,1);
P=eye(M)/delta;
u=u(:);
d=d(:);
% input signal length
N=length(u);
% error vector
e=d.';
% Step2: Loop, RLS
for n=M:N
    uvec=u(n:-1:n-M+1);
    e(n)=d(n)-w'*uvec;
    k=lambda^(-1)*P*uvec/(1+lambda^(-1)*uvec'*P*uvec);
    P=lambda^(-1)*P-lambda^(-1)*k*uvec'*P;
    w=w+k*conj(e(n));
end

滤波前、后的LFM信号时域图如下:
LFM信号加噪、时频分析、滤波
滤波后的LFM信号频谱如下:
LFM信号加噪、时频分析、滤波
(仿真分析留给各位大佬来完成!)文章来源地址https://www.toymoban.com/news/detail-450519.html

代码

clear;
clc;
close all;
%% 参数设置
B=10e6;    %信号带宽10MHz
tao=10e-5;   %脉宽100us
fs=2*B;    %采样频率
Ts=1/fs;   %采样周期
K=B/tao;     %线性调频率
fc =1e8;   %载波频率
%% 产生LFM信号
t=-tao/2:1/fs:tao/2-1/fs;
LFM=exp(j*2*pi*(fc*t+0.5*K*t.^2));  %发射信号
theta =  pi*K*t.^2;      %信号弧度
ft = K*t;                 %信号频率

figure();
subplot(2,2,1);
plot(real(LFM));
xlabel('信号点数n');ylabel('幅度');
title('LFM信号实部');
subplot(2,2,2);
plot(imag(LFM));
xlabel('信号点数n');ylabel('幅度');
title('LFM信号虚部');
subplot(2,2,3);
plot(theta);
xlabel('信号点数n');
title('信号相位');
subplot(2,2,4);
plot(ft);
xlabel('信号点数n');
title('信号频率 Hz');

X=fftshift(fft(LFM));
f=linspace(0,fs,length(t))-fs/2;        %设置频率变量
figure();
subplot(211);
plot(t,real(LFM));
xlabel('时间/t');ylabel('幅度');
title('LFM信号时域');
subplot(212);
plot(f,abs(X));
xlabel('频率/f');ylabel('幅度');
title('LFM信号频谱');

%% 加入单一频率噪声
fn1=6e6;        %噪声频率6MHz
n1=0.1*cos(2*pi*fn1*t);
S1=LFM+n1;
figure();
subplot(211);
plot(t,S1);
xlabel('时间/t');ylabel('幅度');
title('加噪后信号时域');
subplot(212);
plot(f,abs(fftshift(fft(S1))));
xlabel('频率/f');ylabel('幅度');
title('加噪后信号频谱');

%% 设计带通滤波器
y=filter(IIRBPF2,S1);       %用Matlab自带的filter design工具箱,设计低通滤波器,代码见IIRBPF2.m
[b,a]=tf(IIRBPF2);        %把低通滤波器IIRBPF2转化成传输函数,系数为b,a
figure();
freqz(b,a);     %作IIRBPF2 幅频特性曲线图

figure();
subplot(211);
plot(t,y);
xlabel('时间/t');ylabel('幅度');
title('去噪后信号时域图');
subplot(212)
plot(f,abs(fftshift(fft(y))));  %去噪后的频谱
xlabel('频率/f');ylabel('幅度');
title('去噪后信号频谱');
%% 加高斯白噪声
S2=awgn(LFM,10,'measured');    %加入高斯白噪声,信噪比为10dB
sn=S2-LFM;                     %噪声

figure();
subplot(211);
plot(t,S2);
xlabel('时间/t');ylabel('幅度');
title('LFM+高斯白噪声的时域波形');
subplot(212);
plot(f,abs(fftshift(fft(S2))));
xlabel('时间/t');ylabel('幅度');
title('LFM+高斯白噪声频谱');

%% RLS算法滤波
mu2=0.002;
M=2;
espon=1e-5;
delta=1e-7;
lambda=0.99;
[en,w2]=my_rls(lambda,M,sn,S2,delta);%RLS算法子程序
er=en-LFM;            %er为误差信号,滤波器输出-输入
figure();
subplot(311);
plot(t,S2);
xlabel('时间/t');ylabel('幅度');
title('LFM+高斯白噪声的时域波形');
subplot(312);
plot(t,en);
xlabel('时间/t');ylabel('幅度');
title('滤波后信号时域波形');
subplot(313);
plot(t,er);
xlabel('时间/t');ylabel('幅度');
title('误差信号');

figure;
plot(f,abs(fftshift(fft(en))));
xlabel('频率/f');ylabel('幅度');
title('滤除高斯白噪声后信号频谱');

到了这里,关于LFM信号加噪、时频分析、滤波的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • LabVIEW仿真单频脉冲信号+线性调频信号+高斯白噪声信号

    LabVIEW仿真单频脉冲信号+线性调频信号+高斯白噪声信号

    本文基于 LabVIEW 仿真了单频脉冲信号(先导脉冲)和线性调频信号,全程伴有高斯白噪声。 单频脉冲信号由 正弦信号 * 脉冲信号 组合而成。 正弦信号 采样数 = 仿真信号时间总长度(s) * 采样率(Hz) 幅值 = 仿真信号幅度峰峰值(Vpp) / 2 相位 = 0 周期数 = 单频脉冲-频率(Hz) * 仿真信

    2024年02月12日
    浏览(9)
  • 线性调频信号的解线调(dechirp,去斜)处理matlab仿真

    线性调频信号的解线调(dechirp,去斜)处理matlab仿真

    线性调频信号的回波模型 对于线性调频脉冲压缩雷达,其发射信号为: s ( t ) = r e c t ( t T ) e x p ( j π μ t 2 ) begin{equation} s(t)=rect(frac{t}{T})exp(jpi mu t^2) end{equation} s ( t ) = rec t ( T t ​ ) e x p ( jπ μ t 2 ) ​ ​ 其中 r e c t ( t T ) = { 1 , 0 ≤ t ≤ T 0 , o t h e r w i s e . begin{equation} re

    2024年01月20日
    浏览(71)
  • Python环境下基于优化时频分辨率的信号时频分析

    Python环境下基于优化时频分辨率的信号时频分析

    时频分析方法使用时-频域联合分布描述时间序列信号的瞬态特征,并通过瞬时频率估计来表征信号的特征频率随时间变化的趋势,在时间序列信号处理中得到了广泛的应用。STFT 和WT等常用的时频分析方法时频分辨率较低,而且对于多分量时变信号的匹配效果不佳;WVD对噪声

    2024年01月20日
    浏览(12)
  • 利用matlab时频域语音信号的分析与处理

    利用matlab时频域语音信号的分析与处理

    鱼弦:CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) 利用Matlab进行时频域语音信号的分析与处理:原理详解 时频域分析是对信号在时间和频率两个维度上进行分析的方法。在语音信号处理

    2024年02月06日
    浏览(12)
  • 脑电信号处理与特征提取——5.频谱分析和时频分析(张治国)

    脑电信号处理与特征提取——5.频谱分析和时频分析(张治国)

    目录 五、频谱分析和时频分析 5.1 频谱估计 5.1.1 基本概念 5.1.2 频谱估计方法:周期图 5.1.3 频谱估计方法:Welch法 5.1.4 频谱估计方法的比较 5.1.5 频谱特征提取  5.2 时频分析 5.2.1 短时傅里叶变换 5.2.2 连续小波变换 5.3 事件相关同步化/去同步化 静息态脑电: 没有刺激的情况下

    2024年02月15日
    浏览(10)
  • 多传感器时频信号处理:多通道非平稳数据的分析工具(Matlab代码实现)

    多传感器时频信号处理:多通道非平稳数据的分析工具(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🌈3 Matlab代码实现 🎉4 参考文献 本文可塑

    2024年02月11日
    浏览(12)
  • 图像处理--OpenCV实现图像加噪与滤波

    图像处理--OpenCV实现图像加噪与滤波

    前言: Hello大家好,我是Dream。 今天来学习一下如何使用OpenCV实现图像加噪与滤波,欢迎大家一起参与探讨交流~ 编写一Python程序,要求实现以下功能: 读入一幅图像。 使用两种以上的方法分别向图像中添加噪声。 输出一幅二值图像,图像中未加入噪声的区域为黑色,加入

    2024年02月03日
    浏览(12)
  • 【Matlab】音频信号谱分析及椭圆滤波处理

    【Matlab】音频信号谱分析及椭圆滤波处理

    一个使用matlab对音频信号进行频谱分析及滤波处理的学习笔记,本文使用的是椭圆滤波器。 音频下载 demo.mp3 读取音频信号进行傅里叶变换 结果如下 在谱分析中使用matlab自带的快速傅里叶变换函数进行变换 在IIR滤波器设计中使用椭圆低通滤波器 椭圆滤波器使用 入门级教程

    2024年02月12日
    浏览(18)
  • 【matalab】基于Octave的信号处理与滤波分析案例

    【matalab】基于Octave的信号处理与滤波分析案例

    GNU Octave是一款开源软件,类似于MATLAB,广泛用于数值计算和信号处理。 一个简单的信号处理与滤波分析案例,说明如何在Octave中生成一个有噪声的信号,并设计一个滤波器来去除噪声。 首先,确保安装了Octave。可以从Octave官网下载并安装:GNU Octave 案例步骤如下: 1. 生成一

    2024年02月19日
    浏览(25)
  • 【Matlab】音频信号分析及FIR滤波处理——凯泽(Kaiser)窗

    【Matlab】音频信号分析及FIR滤波处理——凯泽(Kaiser)窗

    1.1 课题内容: 利用麦克风采集语音信号(人的声音、或乐器声乐),人为加上环境噪声(窄带) 分析上述声音信号的频谱,比较两种情况下的差异 根据信号的频谱分布,选取合适的滤波器指标(频率指标、衰减指标),设计对应的 FIR 滤波器 实现数字滤波,将滤波前、后的声

    2024年02月21日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包