近期遇到的一些信号处理的问题,做一下总结
近期遇到的一些信号处理的问题,做一下总结
1. 如何从频谱分析仪中得到的txt文件中,提取出对应的复信号?
频谱仪对应将信号分两路存储,I路信号和Q路信号,其存放规律是I路和Q路交替存储
提取的MATLAB代码如下:
load(‘data.txt’); Idata=data(1:2:end); Qdata=data(2:2:end); Complexdata=Idat+j*Qdata;
2. 脉冲压缩的实现方式和具体意义?
实现方式有两种:
(1)时域卷积,就是回波信号和本地脉压系数进行卷积
(2)频域相乘,就是回波经过DFT后,与本地脉压系数的DFT结果进行相乘,再经过IDFT变换到时域
现实意义:利用信号的自相关性,而噪声没有相关性,在卷积后,使得有信号的地方峰值变高,就可以检测到信号。
3. 如何用MATLAB计算频域自相关函数?
就是频谱模平方的傅里叶反变换
MATLAB代码:
NFFT=2*numel(x)-1; ffta=fft(x,NFFT); b=fftshift(ifft(ffta.*conj(ffta)));
4. 数字滤波器的通俗理解?
数字滤波器的原理很简单,通俗讲就是:将输入的时间数据序列转换到频域内,得到频域数据序列,然后乘上滤波器的转换系数得到过滤后的数据序列,然后将该序列转换到时域内,就是需要的数据序列。滤波器函数只是简化了相关过程。
5. 信号与系统中,时域与频域关系示意图
6. MATLAB中计算功率谱的函数内部是什么样的?
MATLAB中功率谱实现函数是像这个样子的:
function [p,f]=fftpsd(x,Fs)
m=length(x);%整个数据长度
n=pow2(nextpow2(m))%扩展到合适长度,2的整数次幂
y=fft(x,n);
f=(0:n-1)*(Fs/n);%频率范围
p=y.*conj(y)/n ;%功率谱范围
f=f(1:n/2);
p=p(1:n/2);
%plot(f,10log10(p))%把数据转换为dB
plot(f,p)
grid;
xlabel(‘Frequency(Hz)’);
ylabel(‘Power(dB)’);
title(‘{\bf Periodogram}’);
7. 上变频和下变频
基带<->中频:一般基带信号也是数字信号,中频处理也是数字化的。因此
基带->中频:一般都是使用DUC进行数字上变频
中频->基带:一般都是使用DDC进行数字下变频
中频<->射频:
中频->射频:数字中频信号经过DAC变成模拟信号,在上变频到射频
射频->中频:射频信号下变频到中频,再经过ADC变化成数字中频信号
8. 负频率的物理意义?
正频率代表向量逆时针旋转,则负频率代表向量顺时针旋转。
9. 如何将MATLAB中多幅fig图片合成一幅fig?
MATLAB对应的代码如下:
%MultiToOne.m h1 = openfig('多普勒谱300W.fig','reuse'); ax1 = gca; h2 = openfig('多普勒谱500W.fig','reuse'); % open figure ax2 = gca; % get handle to axes of figure h3 = openfig('多普勒谱1000W.fig','reuse'); ax3 = gca; h7 = figure; %create new figure s1 = subplot(1,3,1); %create and get handle to the subplot axes s2 = subplot(1,3,2); s3 = subplot(1,3,3); %create and get handle to the subplot axes fig1 = get(ax1,'children'); %get handle to all the children in the figure fig2 = get(ax2,'children'); fig3 = get(ax3,'children'); %get handle to all the children in the figure copyobj(fig1,s1); %copy children to new parent axes i.e. the subplot axes copyobj(fig2,s2); copyobj(fig3,s3); %copy children to new parent axes i.e. the subplot axes
10. 如何从MATLAB中fig图片中提取出数据?
如果你的曲线是用plot画的,则可以采用如下代码提取数据
open('figname.fig'); h_line=get(gca,'Children');%get linehandles xdata=get(h_line,'Xdata'); yadta=get(h_line,'Ydata'); save data yadta xdata
11.扩频信号的接收:解扩+解调(一般顺序不能颠倒)
解扩:在伪随机码同步的情况下,通过对接收信号的相关处理从而获得处理增益,提高解调器输入端的信噪比,降低误码率。
检测信号的方法:采用信号的相干性检测淹没在噪声中的信号。信号的相干性是指信号的某个特定标记(振幅、相位、频率等)在时间坐标中有规定的时间关系。我们把具有这种关系的信号称为相干性信号。
检测信号的过程(相干检测):对相干信号和噪声的混合波进行某种时域上的运算,然后根据某种法则进行判别,再实现相干信号和噪声的分离。
为什么先解扩在解调? 因为解调需要较高的信噪比,解扩能提高信噪比。
12、rayleighchan实现瑞利多径衰落信道
(1)命令格式: chan = rayleighchan(ts,fd,tau,pdb)
其中: ts—为输入信号的采样周期, fd—就是Doppler频偏,以Hz为单位,与速率的换算关系为v×fc/c,fc是载频 tau—输入的信道参数,一个向量,包含了各径的延时,以s为单位 pdb—输入的信道参数,一个向量,包含了各径的功率(当然是均值啦,实际产生的能量都是以此为均值的随机量),以dB为单位。 然后y = filter(chan,x),即可将信道的影响加在输入的数据x上。
(2)原理
rayleighchan函数生成信道的过程实际是设计一个多抽头的滤波器,而滤波器的系数计算是多个sinc函数加权、延时后的求和:
g(n)=\sum_k{ sinc( tau(k)/Ts-n) h(k) },-N1<=n<=N2
其中N1和N2的选取要使得在-N1<=n<=N2之外的g(n)很小可忽略。