实信号变成解析信号的实现方法
1实信号到复信号的两种方法:混频和希尔伯特变换1.1为什么要引入复信号(1)由于实信号具有共轭对称的频谱,从信息的角度来看,其负频谱部分是冗余的,将实信号的负频谱部分去掉,只保留正频谱部分的信号,其 频谱不存在共轭对称性,所对应的时域信号应为复信号。(2) 现代通信信号有各种调制方式,为便于处理, 需要将频带内的信号的谱结构原封不动的下移到零中频(统称为基带信号)。很显然,将接收到的实信号直接变到
1实信号到复信号的两种方法:正交下变频和希尔伯特变换
1.1为什么要引入复信号
(1)由于实信号具有共轭对称的频谱,从信息的角度来看,其负频谱部分是冗余的,将实信号的负频谱部分去掉,只保留正频谱部分的信号,其 频谱不存在共轭对称性,所对应的时域信号应为复信号。
(2) 现代通信信号有各种调制方式,为便于处理, 需要将频带内的信号的谱结构原封不动的下移到零中频(统称为基带信号)。很显然,将接收到的实信号直接变到零中频是不行的,因为实信号存在共轭对称的双边谱,随着载频的下移,正、负相互接近,到中频小于信号频带一半时,两部分谱就会发生混叠,当中频为零时混叠最严重,使原信号无法恢复,这时应在变频中注意避免正、负谱分量的混叠,正确的获取基带信号。
(3) 信号处理引入复信号的原因只是一个——方便数学处理和计算(不需要进行和差化积)。
1.2 正交下变频
1.3 希尔伯特变换
对于实值函数f(t),t∈(−∞,∞),它的希尔伯特变换定义为f(t)与1/πt的卷积。即:
求其频谱
可以看出来,所谓希尔伯特变换就是一个相移转换器。这个转换器器将我们的原始信号的正频率部分乘以-j,也就是说,保持幅度不变的条件下,将相位移动了-pi/2,而对于负频率成分,移动了pi/2。
2 仿真**
2.1 源代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 实信号变成复信号(对正交下变频和希尔伯特变换的理解
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
close all;
clear all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 参数设置
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fs=1e5; % 采样频率
f1=2e3; % 信号频率
f2=3e3;
count=2e3; % 采样点数
t=0:1/fs:(count-1)/fs;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 原始信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=cos(2*pi*f1*t)+3*cos(2*pi*f2*t);
S=fftshift(fft(s));
L=length(S);
P=2*abs(S)/L;
f=(0:L-1)*fs/L-fs/2;
figure(1)
subplot(211);plot(t,real(s));
xlabel('时间t');ylabel('幅度');
title('原始信号的时域波形');
subplot(212);plot(f,P);% 幅度谱
xlabel('频率/Hz');ylabel('幅度');
title('原始信号的频谱');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 期望信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y=exp(1i*2*pi*f1*t)+3*exp(1i*2*pi*f2*t); % 复信号
Y1=fftshift(fft(y));
P1=2*abs(Y1)/L;
figure(2)
subplot(211);plot(t,real(y));
xlabel('时间t');ylabel('幅度');
title('期望信号的时域波形');
subplot(212);plot(f,P1);% 幅度谱
xlabel('频率/Hz');ylabel('幅度');
title('期望信号的频谱');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 如何通过原始信号得到期望信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 法一:希尔伯特变换
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y_h=hilbert(s);
Y_h=fftshift(fft(y_h));
P_h=2*abs(Y_h)/L;
figure(3)
subplot(211);plot(t,real(y_h));title('希尔伯特变换');
subplot(212);plot(f,P_h);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 正交下变频
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fc=(f1+f2)/2; % 载波频率
y1=s.*cos(2*pi*fc*t); % I路
y2=s.*sin(2*pi*fc*t); % Q路
%---------------对I路和Q路进行低通滤波-----------------%
% equiripple 窗
Fs = 100; % Sampling Frequency 单位:KHz
Fpass = 1; % Passband Frequency
Fstop = 2; % Stopband Frequency
Dpass = 0.057501127785; % Passband Ripple
Dstop = 0.0001; % Stopband Attenuation
dens = 20; % Density Factor
% Calculate the order from the parameters using FIRPMORD.
[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
% Calculate the coefficients using the FIRPM function.
h = firpm(N, Fo, Ao, W, {dens});
y1_filter=filter(h,1,y1);
y2_filter=filter(h,1,y2);
y=y1_filter-1j*y2_filter;
Y=fftshift(fft(y));
L=length(y);
P1=abs(Y)*2/L;
f=(0:L-1)*fs/L-fs/2;
figure(4)
subplot(211);plot(t,real(y));
title('正交下变频后的时域波形');
subplot(212);plot(f,P1);
title('正交下变频后的频域波形');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 结论
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 复数信号是单边谱,实数信号是双边谱
% 希尔伯特变换后,只保留了频谱的一半,但为了保持能量不变,幅度变成原来的两倍
% 正交下变频得到的是零中频信号
希尔伯特变换
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 如何通过实信号得到复信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
close all;
clear all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 参数设置
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fs=1e5; % 采样频率
f1=2e3; % 信号频率
f2=3e3;
count=2e3; % 采样点数
t=0:1/fs:(count-1)/fs;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 实信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=cos(2*pi*f1*t)+3*cos(2*pi*f2*t);
S=fftshift(fft(s));
L=length(S);
P=abs(S)/L;
f=(0:L-1)*fs/L-fs/2;
figure(1)
subplot(211);
plot(t,s);grid on;
xlabel('时间/s');ylabel('幅度');
title('原始信号的时域波形');
subplot(212);
plot(f,P);grid on;
xlabel('频率/Hz');ylabel('幅度');
title('原始信号的频谱');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 复信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y=exp(1i*2*pi*f1*t)+3*exp(1i*2*pi*f2*t); % 复信号
Y1=fftshift(fft(y));
P1=2*abs(Y1)/L;
figure(2)
subplot(211);
plot(t,real(y));grid on;
xlabel('时间/s');ylabel('幅度');
title('期望信号的时域波形');
subplot(212);
plot(f,P1);grid on;
xlabel('频率/Hz');ylabel('幅度');
title('期望信号的频谱');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 希尔伯特变换
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y_h=hilbert(s);
Y_h=fftshift(fft(y_h));
P_h=abs(Y_h)/L;
figure(3)
subplot(211);
plot(t,real(y_h));grid on;
xlabel('时间/s');ylabel('幅度');
title('希尔伯特变换后的实部时域波形');
subplot(212);
plot(f,P_h);grid on;
xlabel('频率/Hz');ylabel('幅度');
title('希尔伯特变换后的信号频谱');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 信号对比
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(4)
plot(t,s-real(y_h));grid on;
xlabel('时间/s');ylabel('幅度');
title('原信号与希尔伯特变换后的信号实部信号之差');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 结论
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 复数信号是单边谱,实数信号是双边谱
% 希尔伯特变换后,只保留了频谱的一半,但为了保持能量不变,幅度变成原来的两倍
% 正交下变频得到的是零中频信号
2.2 仿真结果**
结论
1、 复数信号是单边谱,实数信号是双边谱
2、 希尔伯特变换后,只保留了频谱的一半,但为了保持能量不变,幅度变成原来的两倍
3、 正交下变频得到的是零中频信号
更多推荐
所有评论(0)