信号处理
nwsuaf_huasir
“奥雷里亚诺,马孔多在下雨”,“别犯傻了,赫里内勒多,八月下雨很正常。”
展开
-
相似系数计算公式
1]李凤娥.自适应抗干扰及盲源分离应用技术研究[D].西安电子科技大学,2021.DOI:10.27389/d.cnki.gxadu.2021.001863.在采用盲分离算法进行信号分离的时候,需要对分离结果进行定量分析和评估,分离效可用相似系数来评估。仅存在幅度上的不同,分离的信号十分纯净;完全不相同,信号没有被分离。的数值越接近1,分离的效果越好。等于1,则表明分离的信号。等于0,则表明分离的信号。原创 2024-04-24 17:57:38 · 911 阅读 · 1 评论 -
matlab绘图杂谈-stem函数和plot函数
三条曲线应该是用plot函数绘制的,而target哪个绿色的圆圈,我的理解是用stem函数绘制的。它只是1个点,并且没有竖线,stem绘制的默认的是茎叶图,既有线又有标记,像图中这个它就是只有标记。如果自己随便画一个图,那么直接使用语法2,其参数都采用默认参数,如果要自己控制参数,可以采用语法4。值得注意的是,使用plot函数的时候,这些参数的设置方法是和stem函数一样的。它可以分别控制线条、标记的各自的参数,具体可以查阅matlab官方的资料。它设定的线型是点划线,标记是圆圈,颜色是红色。原创 2024-01-25 16:42:44 · 2949 阅读 · 0 评论 -
matlab窗函数-hann窗和hamming窗函数
汉明窗(hamming)和海宁窗(hann)类似,汉明窗的时域波形两端不能到零,而海宁窗时域信号两端是零。简单点说,hann窗比较稳,短期长期发挥稳定,hamming窗比较激进,短期发挥水平高,长期就没劲了。这些窗函数通常在时域上是有限的宽度,并且具有对称性,如矩形窗、汉宁窗、汉明窗和布莱克曼窗等。例如,汉明窗是一种对称窗函数,它可以用来平滑信号,减少频谱能量的泄漏,从而提高傅里叶变换后的频率分辨率和精度。hann窗的matlab函数为hann,使用方法和hamming是相同的,这两种窗有些差异。原创 2024-01-24 17:45:20 · 8067 阅读 · 0 评论 -
matlab抽取与插值
我们假设一个数字信号xnn12Nxnn12...N共有NNN个点,抽取就是每个几个点抽1个点,比如2倍抽取,那么抽取后的信号为yny1x1y2x3y3x5yN2xN−1yny1x1y2x3y3x5...yN/2xN−1,可以看到抽取之后信号的长度变短了。插值和抽取相反,插值之后信号会变得越来越密集,注意绝对时间长度是不变的。例如数字信号xnn12Nxnn12...N。原创 2024-01-20 16:03:49 · 1564 阅读 · 0 评论 -
希尔伯特变换-matlab仿真
在信号处理中我们常见的有傅里叶变换,用来分析频域信息,还有拉普拉斯变换和z变换,用于系统分析系统响应。短时傅里叶分析和小波分析用于时频分析。希尔伯特变换似乎听到的比较少。我因为最近在做信号幅度提取的时候看到可以用希尔伯特变换来提取包络,所以才了解到了希尔伯特变换,网上的资料很多,对它的介绍也很多,我对它的了解有限,只是知道它可以做IQ调制,也可以提取信号分包络。我觉得作为工科生,就应该本着实用主义的原则,很多公式和定理的证明是数学家的事情,我们只需要懂怎么用,把这些已有的信号处理的工具用好就行了。原创 2023-11-25 17:06:40 · 1362 阅读 · 0 评论 -
matlab产生指定功率的噪声信号、固定SNR的信号
仿真的时候,我们先固定噪声功率,默认输出功率为1的噪声信号,然后再产生指定信噪比的有用信号。randn:产生均值为0,方差σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。matlab中randn函数用法,产生正态分布的随机数或矩阵的函数。例如下面的代码就是产生1个噪声信号,它的幅度和功率都是1。在matlab中计算信号的能量,可以通过以下公式,长度为。可以看出,计算出来的功率和指定的功率基本是吻合的。首先要理解信号的幅度和功率,例如信号的幅度为。知道了功率,只要开根号就可以知道信号的幅度。原创 2023-09-26 19:06:55 · 4556 阅读 · 2 评论 -
matlab三维图绘制meshgrid函数+mesh函数
查看x、y和z,都是5*5的矩阵。例如我们要绘制sin(x+y)原创 2023-04-12 15:21:58 · 1343 阅读 · 0 评论 -
FastICA盲源分离算法语音信号处理
链接:https://pan.baidu.com/s/18rWQgNKO7_79WvwmAx_KrA。其中的音频文件的素材和仿真程序产生的混合及解混合的音频都可以在以下链接下载。这个例程展示了采用FastICA算法进行两个语音信号的解混合。原创 2022-10-20 15:40:23 · 823 阅读 · 0 评论 -
matlab音频处理相关函数的用法:sound、wavwrite、audiowrite
Name,Value指名称-值对组参数(官网上的称呼),具体来说是给其定义具体细节的参数,看例子吧。‘BitsPerSample’,24指每个样本点用24为数(数据的长短决定了文件的质量和大小)y指要写入的音频数据,比如有一个序列data,就可以把y的位置写成data。当然后面还有‘title’,‘artist’之类的,一般用不上。wavwrite函数的功能是将数据保存为wav格式的音频文件。Fs为取样率,一般音频信号的取样率为8000Hz。sound函数是将数据(矩阵)变成声音播放。原创 2022-10-20 14:55:44 · 2804 阅读 · 0 评论 -
fft之后的实际频率
快速傅里叶变换FFTfft在matlab中的函数就是fft,它式离散傅里叶变换的快速算法。fft的数学公式为:X[k]=1N∑n=1Nx[n]ej2πknNX[k] = \frac{1}{N}\sum_{n=1}^{N}x[n]e^{j\frac{2\pi kn}{N}}X[k]=N1n=1∑Nx[n]ejN2πkn原来的信号的序列长度为NNN,则fft之后得到的结果依然是NNN个点。fft之后的X[k]X[k]X[k]表示了第kkk个频率分量。那么如何将kkk对应到真实频率上去呢?真实原创 2022-05-26 18:39:03 · 6021 阅读 · 0 评论 -
信号调制仿真
为什么要进行调制?因为有用的信号往往频率低,而适合天线发送的信号频率往往比较高。所以需要调制。简单的说,就是把一个低频信号调制到高频上去。调制仿真用matlab简单的仿真一下,一个低频信号和一个高频信号混频便实现了调制的过程。%% 信号包络,调频的调制过程展示% 2022.5.26T = 1; % 总时间fs = 1000; % 采样率dt = 1/fs; % 采样间隔t = 0:dt:1; % 时间刻度向量f1 = 2; %基带信号频率f2 = 50; % 载频x = cos(2*原创 2022-05-26 16:44:56 · 905 阅读 · 0 评论 -
雷达距离分辨力的推导
什么是雷达的距离分辨力?首先要知道,雷达的距离分辨力是一个带单位的值,假设某雷达的距离分辨力为△R\triangle R△R(米),则在同一方位上的两个目标之间的距离如果小于△R\triangle R△R,雷达就视为同一个目标。图1. 雷达分辨力示意图假设雷达的脉宽是TpT_pTp,则雷达的分辨力为:cTp2\frac{cT_p}{2}2cTp,式中,ccc为光速。...原创 2022-05-20 20:25:36 · 3883 阅读 · 0 评论 -
多正弦信号仿真
多正弦信号的表示方法我刚开始直观的认为多正弦信号(在信号处理中将余弦认为是正弦)就是多个cos(ωt)cos(\omega t)cos(ωt)的和:f(t)=cos(ω1t)+cos(ω2t)f(t)=cos(\omega_1t)+cos(\omega_2t)f(t)=cos(ω1t)+cos(ω2t),但是我发现在论文中,常常采用复指数的形式来表达,例如下面的某篇论文的截图:图1. 论文中复指数表达方式具体是为什么,我也不知道,可能是因为这样子表达更加的简洁吧。S(t)=∑j=1majei2原创 2022-05-13 16:13:46 · 782 阅读 · 0 评论 -
字母的各种字体及latex表示方法
原创 2022-05-13 15:39:25 · 20227 阅读 · 0 评论 -
低通滤波-matlab低通滤波程序
本例程展示了信号处理中低通滤波的作用,首先生成一个高斯白噪声,然后对其进行低通滤波。低通滤波器的截止频率和Q值可以自己设定,得到低通滤波器的传输函数后,在经过双线性变换法得到其单位脉冲响应。滤波后对原始信号的频谱和滤波后的信号的频谱进行了对比。%% 低通滤波器演示程序%% 生成白噪声信号clc;clear all; close all;N = 1000; %采样点数fs = N; %采样频率fre_base = -N/2:N/2-1;a = randn(N,1); %生成符合高斯分布的随机原创 2022-05-12 20:59:06 · 24162 阅读 · 10 评论 -
python之matplotlib绘图
文章目录matplotlib绘图库Matplotlib Pyplot库函数:plotMatplotlib Pyplot库函数:scatterMatplotlib Pyplot库函数:stem线条及颜色的参数配置matplotlib绘图库Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。Matplotlib 可以用来绘制各种静态,动态,交互式的图表。Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通原创 2022-04-12 16:29:58 · 957 阅读 · 0 评论 -
python中信号处理之卷积
scipy库之卷积卷积在信号处理里面就像加减乘除一样,是最基础的运算,其实卷积和相关差不多,都是滑动、对应点相乘、求和。scipy这个库有现成的函数可以供我们使用:import numpy as npimport scipy.signalx = np.array([1,2,3,4])h = np.array([4,5,6])print(scipy.signal.convolve(x, h))#一维卷积运算[ 4 13 28 43 38 24]卷积之后的序列的长度变为了两个序列的和再减1。原创 2022-04-11 12:31:10 · 2005 阅读 · 0 评论 -
matlab几个函数
toeplitz矩阵生成T = toeplitz(c,r) 返回非对称托普利茨矩阵,其中 c 作为第一列,r 作为第一行。如果 c 和 r 的首个元素不同,toeplitz 将发出警告并使用列元素作为对角线。c = [1 2 3 4 5] %toeplitz矩阵第一列r = [1 0 -1 -2 -3 -4] %toeplitz矩阵第一行>> toeplitz(c,r)ans = 1 0 -1 -2 -3 -4 2 1原创 2022-04-07 11:21:54 · 348 阅读 · 0 评论 -
信噪比的定义及计算方法
1.信噪比的定义英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO),又称为讯噪比。是指一个电子设备或者电子系统中信号与噪声的比例。这里面的信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存在的无规则的额外信号(或信息),并且该种信号并不随原信号的变化而变化。2.计算方法信噪比是一个比值,也可以认为是一种倍数,在通信和电子工程中,我们希望的是信噪比越高越好。比如说信号噪声的强度是噪声的10倍、100倍、1000倍,由于这个数字可能是一个很大原创 2022-04-05 19:16:21 · 154271 阅读 · 7 评论 -
SRS信号研究
在5G中,SRS是用于上行信道估计的一个信号,接收方波形已知。在Matlab中可以采用5G工具包进行仿真。3GPP标准协议规范TS 38.211 6.4.1.4定义了SRS信号的生成,包括SRS信号配置、符号和索引位置、OFDM时频资源网格映射和SRS波形生成。SRS信号主要分为三种应用模式:含义取值范围CSRS带宽配置C_SRS{0,1,…,63}BSRS带宽配置B_SRS{0,1,2,3}FrequencyStart频域SRS信号的频率位置(无线时频资源块原创 2022-03-12 17:09:02 · 1418 阅读 · 0 评论 -
matlab神经网络初探
代码如下:%%%%%使用BP神经网络逼近函数cos(x)%%%clc;clear;x=0:0.1:1.5;%训练样本y=sin(x);%真实的输出值net=newff(minmax(x),[10,1],{'logsig','logsig'});%建立bp神经网络,两个隐藏层net.trainParam.show = 50;net.trainParam.lr = 0.01;%学习率net.trainParam.goal = 0.0001;net.trainParam.epochs = 50原创 2022-03-09 20:11:56 · 945 阅读 · 0 评论 -
5G中的上变频
在一个资料中找到一段重要的话,可以解决这个问题。翻译过来说数:调制和上变频对天线ppp,子载波带宽配置μ\muμ,ofdm符号lll,子帧上的起始时间ttt的复数值的OFDM信号进行OFDM调制后 的上变频操作为如下:Re{slp,μ(t)⋅ej2πf0(t−tstart,lμ−NCP,lμTc)}\mathrm{Re}\{s^{p,\mu}_l(t)\cdot e^{j2\pi f_0(t-t^{\mu}_{\mathrm{start},l}-N^{\mu}_{\mathrm {CP},l}T原创 2022-02-28 22:38:25 · 1529 阅读 · 1 评论 -
IQ调制Matlab代码
t = 0:1:(307200-1);%采样时间t = (t/307200)*0.002;fc = 10000000;I = real(data);%取I路Q = imag(data);%取Q路I_carrier = cos(2*pi*fc*t);%对I路进行调制Q_carrier = sin(2*pi*fc*t);%对Q路进行调制I_carrier = I_carrier';%I路调制Q_carrier = Q_carrier';%Q路调制st = I.*I_carrier - Q.*Q原创 2022-02-28 12:54:42 · 5641 阅读 · 1 评论 -
OFDM学习、编程实现
Matlab中有一个实现5G OFDM的函数,可以帮助我们理解OFDM的原理。官方的使用方法有以下三种:[waveform,info] = nrOFDMModulate(carrier,grid)[waveform,info] = nrOFDMModulate(grid,scs,initialNSlot)[waveform,info] = nrOFDMModulate(___,Name,Value)[waveform,info] = nrOFDMModulate(carrier,grid)我原创 2022-02-28 00:13:38 · 1528 阅读 · 0 评论 -
SRS信道探测参考信号的作用
SRS是探测参考信号的缩写,所谓参考信号,那么是为谁提供参考?参考的指标是什么?答案是为eNodeB的调度提供参考,参考的内容是为上行信道质量做参考。原创 2022-01-21 16:22:04 · 3092 阅读 · 0 评论 -
跳频的理解
在通信中,跳频是一个很常见的概念。我们都知道信号的传输需要在一定的载波上进行,跳频指的是载波频率的变换。移动通信中采用跳频技术,具有良好的抗干扰特点,有效的提高通信质量。一般来说,载波频率的跳变规律是按照通信双方事先约定好的伪随机码来确定的。...原创 2022-01-16 14:35:21 · 3616 阅读 · 0 评论 -
ZC序列学习
最近在学习5G通信,关注到5G中的信道参考信号SRS是由ZC序列产生的,相关知识点记录如下。名字由来zc 序列由 Zadoff 和Chu 两人提出,两人具体信息网上没查到,估计这也算不算什么伟大发明吧,就有了这个名字。表达式zr[n]=e−j2πrn(n+1)/Nzcz_r[n]=e^{-j2\pi rn(n+1)/N_{zc}}zr[n]=e−j2πrn(n+1)/Nzc式中,rrr为根序列索引(root index,r∈{1,...,(Nzc−1)}r\in \{ 1,...,(N_{zc原创 2022-01-14 20:10:46 · 7120 阅读 · 4 评论 -
小波变换基础知识
为什么要引入小波?在信号处理中,我们使用最多的是傅里叶变换,傅里叶变换存在的一些缺点,而小波的引入就是为了解决这些缺点。缺点一:无法刻画信号的局部特性;缺点二:对突变和非平稳信号的分析能力有限;例如我们看下图:上图左下方的两个图中,不同频率的信号在时间轴上的位置不同,但是他们的频谱却大相径庭。傅里叶变换的原理就是拿不同频率的正弦波去和信号做相关(相关运算就是将对应点相乘求和),相关性越大,那么该频率分量在待测信号中所占的比重也越大。那么该分量不管出现在信号中的哪个位置,其频谱都是一样的。人们原创 2021-12-16 20:26:29 · 3503 阅读 · 0 评论 -
matlab中对一个信号加指定信噪比的噪声
dt = 0.001; %T = 1; %仿真时间t = 0:dt:T; %时间向量x = sin(10*2*pi*t);subplot(2,1,1);plot(t, x)y = awgn(x,-5,'measured');subplot(2,1,2);plot(t, y)awgn()函数可以对指定信号加一定信噪比的噪声原创 2021-12-09 19:55:28 · 11591 阅读 · 3 评论 -
二维离散傅里叶变换
二维离散傅里叶变换的直观理解一维离散傅里叶变换很简单,就是将一个向量(一维信号)分解为多个频率的向量(一维信号之和)。那么二维离散傅里叶变换我们类比一下就知道了,他只是将一幅图片(二维信号)分解为多幅图像(二维图像)的和。图解这几个图是网上找的,看完之后应该就理解的差不多了,先保存下来来自于知乎某位大神...原创 2021-11-19 10:46:16 · 3385 阅读 · 0 评论 -
匹配追踪算法
匹配追踪算法是正交匹配追踪算法的基础,下面是matlab代码function [x_rec] = MatchingPursuit( y, K, Theta)%% 匹配追踪算法%% Vsesion:1.0 Written by zhenhuaLiu@ 2021.11.16 HIT ATCI%% 输入参数: %Theta:感知矩阵 %y: 压缩采样数据 %K: 稀疏度%% 输出参数: %x_rex: 重构的x向量%%% clc;% clear all;% c原创 2021-11-17 17:00:57 · 1747 阅读 · 0 评论 -
matlab的ezplot绘图函数
不同于plot函数,这个函数的功能是绘制符号函数的图像,只需给出函数的解析表达式即可,不需计算,也可不指出绘图区间,是一种十分简单的绘图方式,看名字就知道eazy是简单的意思,因此很好用。 其调用格式为: ezplot(<隐函数表达式>,[x最小值,x最大值,y最小值,y最大值]) 隐函数表达式必须给出,是个字符串例如要绘制正弦函数:ezplot('sin(x)')ezplot(fun)绘制表达式fun(x)在默认定义域 ...原创 2021-11-16 20:18:02 · 4805 阅读 · 0 评论 -
离散傅里叶变换和逆变换-matlab编程实现
$$X(k)=x(n)$$原创 2021-11-15 21:34:30 · 1867 阅读 · 0 评论 -
离散傅里叶变化-matlab的fft
下面是使用matlab的自带的例子进行离散傅里叶变换的程序,非常的简单。写下来主要是给自己看的。%% matlab离散傅里叶变换%% Vsesion:1.0 Written by zhenhuaLiu@ 2021.11.15 HIT ATCIclearclcclose allfs = 1000;t = 0: (1/fs): (1-1/fs);%时间向量x = sin(2*pi*100*t)+sin(2*pi*200*t);%多点频信号,分别是100Hz和200HzN = leng.原创 2021-11-15 21:31:14 · 2815 阅读 · 1 评论 -
采用机器学习进行FRI信号重构-样本集的生成
相对传统的重构算法,机器学习的优点在于抗噪性。%%-------------------------------------------------%%FRI生成输入输出数据,样本集的大小为Total_sample%%该数据用于训练神经网络%%Liuzhenhua HIT-ATCI-53%%2021.09.05-16:30%%-------------------------------------------------clc;clear all;close all;%% FRI信号-原创 2021-09-05 16:26:03 · 441 阅读 · 0 评论 -
巴特沃斯数字低通滤波器
matlab实现信号滤波有很多种方法,本文采用filter函数,先由butter函数生成数字滤波器分子、分母多项式,然后将这些参数传给filter函数,便可实现滤波的功能。知识点如下:1、[b,a] = butter(N,wc);其中,b和a分别为滤波器分子、分母多项式,N为滤波器阶数,wc为3dB截止频率,巴特沃斯低通滤波器的特点为:整个频带内单调下降,且非常光滑,并且阶数越高,阻带内下降的越陡峭、越干脆。无论阶数多高,都在经过(wc,3dB)一点。2、y = filter(b,a,x);原创 2020-10-08 19:42:42 · 10671 阅读 · 0 评论 -
SVD分解原理及基于SVD分解的图像压缩和去噪
SVD分解是矩阵论中的一个知识点,特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么,可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。SVD分解的公式如下,其中U和V都为正交矩阵,中间的为特征值构成的对角矩阵,相对于正交对角分解,SVD分解的适应性更强,应为A不必是方阵,下面是SVD分解的公式。用SVD做图像压缩,就是用部分特征值以及左/右奇异矩阵部分列来近似矩阵A。对角矩阵的对角线元素都为非负的实数,且按...原创 2020-10-07 18:40:16 · 5651 阅读 · 3 评论 -
离散傅里叶变换matlab程序
离散傅里叶变化可以将一个序列展开成不同频率的正弦信号的和,matlab中采用fft函数即可实现。x信号为2000Hz和3000Hz的正弦信号之和。%%-----------------------------------------------------------------------------%%离散时间傅里叶变换-正弦信号%%-------------------------------------------------clc;clear all;close all;%%-----原创 2020-09-26 19:04:57 · 3276 阅读 · 0 评论 -
卷积的运算过程及matlab实现
卷积是信号处理领域最为常见的运算,对于一个线性时不变系统而言,只要知道了系统的单位冲击响应,则可以由输入序列x[n]和单位冲击响应h[n]经卷积运算得到系统的输出。下面给出输入信号x = [1 2 3 4];单位冲击响应h = [2 1 1]时,系统输出的运算过程,虽然matlab自带了卷积函数conv,但是通过亲手编写代码可以加深对卷积的运算。可以由这个例子得出,卷积之后的y[n]序列的长度等于x[n]长度值与h[n]长度值的和再减1。clc;%清屏幕clear all;%清除工作区间内所有变量原创 2020-09-17 20:10:45 · 14538 阅读 · 0 评论 -
matlab中sinc()函数的绘制及解析
在信号与系统中,经常用到冲击响应,理想低通滤波器的单位冲击响应为h(t)=sinc(t),sinc(t)=sin(pi*t)/(pi*t)。那么它的样子是什么呢?下面我用matlab进行绘制。蓝色的为sinc(t)函数,红色的为sign(sinc(t)),其中sign(t)为符号函数。close;clear all;fd = 1000;t = -10:1/fd:10;y=sinc(t);plot(t,y);hold on;y1=sign(y);plot(t,y1,'r');axis([原创 2020-09-15 14:07:06 · 17060 阅读 · 1 评论