首页/文章/ 详情

代码分享之信号捕获和跟踪(2)上下变频器

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/博士学历/特邀专家/独家讲师
平台推荐
内容稀缺
1月前浏览722

之前分享过一篇文章,代码非常完善,给出了传输体制的全部内容。但很多卫星通信系统的上下行链路上调制编码方式有较大差异,因此实际系统仿真的复杂度还有一定的提升。本人工作期间涉及的第二个产品就是这样的情况。那该如何仿真呢?

后续会给出部分代码,但这些代码也足以能引导同行完整的写出整个系统所需的各种传输体制程序!当年本人也就完成了体制仿真的部分工作,因工作需要后续没有再参与!
2024年9月,匆匆推出本文,只愿能给通信同行带来一些借鉴!以后还会不断的增加讲解内容,以期让此文能够给在校学生带来更多实用性的讲解!
上一篇文章中提到的这个传输体制最终没有延续成为二代系统的传输体制,但当时我们已经在企业里面完整的将其实现并进行了测试(有中心站和地球站),因此参考价值不容低估!企业花钱建立模拟的卫星通信系统,代价非常大!不仅要买天线,还要租用卫星转发器!但从长远来看,非常值得!最值的是培养一批研发队伍!
这些内容会在下一篇文章中介绍,本次接着第一篇文章中的内容进行讲解!因为产品研制除了传输体制,还要考虑发射机和接收机架构!是零中频还是低中频呢?我们当时采用的是低中频架构。零中频和低中频都是无线通信系统中接收机的常见架构,它们各有特点。
采用了低中频架构,为何就需要研究数字上下变频器呢?
在通信设备中,采用低中频架构有其特有的优势,但信号处理往往是在基带完成,因此需要有基带信号到低中频信号的转换桥梁。这个桥梁就是数字上下变频器。数字上下变频器(Digital Up/Down Converters, DUC/DDC)主要是为了高效地处理和转换信号频谱,满足系统设计要求。
卫星地球站的系统架构!

优劣分析!
低中频架构的优点:
1. 简化模拟滤波器设计:相比直接下变频即零中频或高中频架构,低中频架构的信号处于一个适中的频率,滤波器的设计要求较低,不需要非常陡峭的滤波特性。
2. 减小直流偏移和I/Q不平衡影响:在零中频架构中,直流偏移和I/Q不平衡会对信号产生较大影响,而低中频架构通过将信号移至非零频率,可以有效减少这类问题。
在低中频架构中,由于信号通常位于非零的中频,后续的数字处理必须进行频率变换(如从中频变换到基带),这就需要用到数字上下变频器。
这里简单讲讲在低中频架构下使用数字上下变频器的必要性。
1. 频率转换:低中频架构的信号在数字域通常仍然是中频信号。为了进一步处理信号,通常需要将其转换到基带。这一过程就需要使用数字下变频器(DDC)。在上行链路中,如果信号需要从基带转换到中频,则需要数字上变频器(DUC)。
2. 滤波需求:在进行数字上下变频的过程中,还需要对信号进行抗混叠滤波和带限滤波。因此,数字上下变频器通常包含级联的滤波器来确保信号频谱的正确性。
3. 提高效率和集成度:传统的模拟上变频/下变频通常使用混频器和滤波器,但这些模拟电路的实现复杂且难以调试。数字上下变频器不仅可以以较低成本实现,而且还能够通过算法优化提高效率,适应多种频率的需求。实际产品中经常会是专用芯片或者一块FPGA芯片的形式出现。
4. 多制式、多频带支持:通信系统需要支持多种频段和制式,数字上下变频器可以通过数字电路快速实现不同频段间的切换和适配,而不需要依赖于复杂的模拟设计。这种芯片的使用可以扩展数字平台的应用范围。
因此,研究数字上下变频器不仅能够提升低中频架构的性能,还能够大幅简化系统设计,增强系统的灵活性和集成度。
  1. Processing Algorithm
    • 许多上下变频器使用复数基带信号表示法,这样在下变频时可以使用复数乘法(复数混频),大幅简化正交I/Q分量的处理。
    • 处理过程中,复数滤波、复数FFT等技术可以用于滤波和频域分析。
  2. I/Q失衡校正算法(I/Q Imbalance Compensation)
    • 在实际硬件中,由于I路和Q路之间存在不匹配,可能会引入失真。上下变频器常需要使用I/Q失衡校正算法来补偿这类失真,确保信号的质量。
  3. 相位噪声抑制算法(Phase Noise Reduction)
    • 在实际应用中,由于时钟源或振荡器不理想,可能引入相位噪声。特别是在上变频过程中,这会对系统性能产生影响。相位噪声抑制算法用于减轻这些影响。
  4. 自动增益控制(AGC, Automatic Gain Control)
    • 在上变频或下变频过程中,信号的幅度可能会因频谱搬移和滤波操作发生变化。AGC算法自动调节信号的增益,以确保输出信号具有稳定的幅度,特别是在链路传输或后续信号处理时非常关键。

再来看看数字上下变频器的信号处理流程。

  • 数字上变频器(DUC)
    1. 通过插值提高采样率。
    2. 使用NCO生成正弦和余弦波进行混频,移动频谱。
    3. 通过滤波器带限信号,避免带外干扰。
  • 数字下变频器(DDC)
    1. 使用NCO生成本振信号,与输入信号混频,将中频信号搬移至基带。
    2. 通过低通滤波器消除高频分量。
    3. 通过抽取减少采样率,得到基带信号。
总结来说,数字上下变频器涉及多种算法,包括频率搬移、插值和抽取、滤波器设计,以及信号增益控制等。这些算法的协同工作,确保了在频率域上的灵活性和高效的信号处理。
AI现状!
此时我们一起来看看国外AI给出的仿真代码!
 

% Plot the original IF signal
figure;
subplot(3, 1, 1);
plot(t(1:1000), IF_signal(1:1000));
title('Original IF Signal');
xlabel('Time (s)');
ylabel('Amplitude');

% Digital Down Conversion
% 1. Multiply by NCO (Numerically Controlled Oscillator) to
 
% shift signal to baseband
NCO_sin = sin(2*pi*Fc*t);  % NCO sine wave
NCO_cos = cos(2*pi*Fc*t);  % NCO cosine wave

I_signal = IF_signal .* NCO_cos;  % In-phase component (I)
Q_signal = IF_signal .* NCO_sin;  % Quadrature component (Q)

% 2. Low-pass filter (FIR) to filter out the high-frequency components
lpFilt = designfilt('lowpassfir', 'PassbandFrequency', 15e3, ...
   'StopbandFrequency', 20e3, 'PassbandRipple', 1, 'StopbandAttenuation', 60, 'SampleRate', Fs);

I_filtered = filter(lpFilt, I_signal);  % Filtered in-phase component
Q_filtered = filter(lpFilt, Q_signal);  % Filtered quadrature component

% 3. Decimation (downsample the signal to reduce the sampling rate)
decimation_factor = 10;  % Decimation factor
I_decimated = downsample(I_filtered, decimation_factor);
Q_decimated = downsample(Q_filtered, decimation_factor);
Fs_decimated = Fs / decimation_factor;

% Plot the filtered and downsampled baseband I signal
subplot(3, 1, 2);
plot(t(1:1000), I_filtered(1:1000));
title('Filtered I Signal');
xlabel('Time (s)');
ylabel('Amplitude');

subplot(3, 1, 3);
plot((0:length(I_decimated)-1)/Fs_decimated, I_decimated);
title('Decimated Baseband I Signal');
xlabel('Time (s)');
ylabel('Amplitude');

% Combine the I and Q components into a complex baseband signal
baseband_signal = I_decimated + 1i*Q_decimated;

% Spectrum analysis of the baseband signal
figure;
pwelch(baseband_signal,[],[],[],Fs_decimated);
title('Baseband Signal Spectrum');
%----------    end  --------------
 

代码说明:

  1. IF信号生成:生成了一个100 kHz的中频信号,它是一个10 kHz信号调制后的结果。
  2. 混频:通过与数控振荡器(NCO)生成的正弦和余弦波相乘,将信号从中频搬移到基带,得到I/Q分量。
  3. 低通滤波:使用FIR滤波器去除混频后的高频分量,保留基带部分。
  4. 抽取:通过降采样(抽取)降低信号的采样率,减小计算复杂度。
  5. 频谱分析:最后通过 pwelch 函数对基带信号进行频谱分析。

调整参数:

  • 可以修改 Fcf_signalFs 等参数,以适应不同的中频信号和系统需求。
  • 低通滤波器的设计可以通过调整 PassbandFrequencyStopbandFrequency 来适应不同的信号带宽。
这个代码写的基本不可用,这种专用技术难度非常大的代码确实非现在的AI能完成的,离实用目标还很远,那来看看本人写的代码吧!先从理论讲解开始!一个系列文章!

那么在企业里研发此类产品又是什么样子呢?

产品研制成功后,不仅用于卫星终端(正式名称为卫星地球站),还用于短波电台等产品中!此次共享哪些代码和文档呢?

之前图中目录《1005电台》的内容和目录《HSP50214》及《HSP50215》中的内容存在较多重合之处,再加上名称敏感,故没有和大家共享!一篇文章一本书,先讲这么多,公布代码的下载链接,后续还会逐步分享更多的代码和文档!下载链接,只有一天有效!

来源:通信工程师专辑
ACT电路系统仿真MATLAB芯片通信UM理论控制数控Origin
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-14
最近编辑:1月前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 395粉丝 2586文章 342课程 40
点赞
收藏
作者推荐

MATLAB课程之绪论v4(2)

继续讲述科学史!本人很喜欢历史,因为从历史中可以去借鉴当下发生的一些事情。作为工科生,我们需要了解学科发展的历史,也需要了解科学发展史。针对本门课程,我们需要了解计算机的发展史和互联网的发展史。最和课程相关的是计算机编程语言的发展过程,也就是计算机语言的历史!汇编语言的使用让人感到编程的痛苦。后来“高级语言”出现了,C语言就是“高级语言”中的典型代表,当然还有其他的比如FORTRAN、C++、JAVA、R、MATLAB、Python等等。每一种语言都有它自身的优势和劣势。先简单聊聊C语言吧,毕竟它是万言之母。对于电子类专业而言,它又是硬件开发的利器!!!它和汇编语言相比,优势太多了。先简单的讲几点。相比于汇编语言,C语言提高了编程的效率。如果使用汇编语言要写几千行代码的话,那么要实现同样的功能,使用C语言只需要写几十行代码就可以了;提高了“可移植性”。同“汇编语言”和“机器语言”之间相互转换的道理类似,在“C语言”和“汇编语言”之间,也有一个“翻译工具”,称作“编译器”,能够将C语言代码翻译成汇编语言。也就是说:即便是在不同厂商的机器上,只要事先开发出一个“翻译工具”出来,不同的机器就能够跑起来相同的C语言代码了;程序“运行效率”较高。当然了,跟“机器语言”和“汇编语言”是没法比的,但是相比于同类型很多其他高级语言,C语言的运行效率是非常高的。当然C语言的劣势也是显而易见的。与同类型很多高级语言(比如MATLAB和Python)相比,C语言能够使用的库或者函数相对较少,语法规则过于繁琐,开发效率还是不高;“移植性”虽然强于“汇编语言”,但是弱于其他高级语言;虽然C语言运行效率高,但是在很多场景下,无需太强的运行效率,因此性能的优势发挥不出来。 但是在一些对于运行效率要求很高的领域,特别是跟硬件相关的领域,比如嵌入式领域,C语言目前是无法被取代的。上述内容来源于网络!对于电子和通信领域的学生而言,没有编程几乎是寸步难行,除非你以后只搞射频,纯模拟领域的工作!那么MATLAB语言又如何呢?MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。在20世纪七十年代后期,时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。经几年的学校间的流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年,MathWorks公司成立,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。本人就是靠它养家糊口,在此万分感谢Cleve Moler教授的发明。风云变幻!2020年,有哈工大学生表示收到了正版软件取消激活的通知,而在与MATLAB开发公司MathWorks交涉之后,被告知由于美国政府实体名单的原因,相关授权已被中止。目前,哈尔滨工业大学、哈尔滨工程大学的老师和学生们都无法使用 MATLAB。MATLAB大学读理工科专业的同学基本上都接触过这款软件,而且越来越多的学科也在使用。如果整个学校被禁用了正版 MATLAB,这意味着学校的人员再发表论文或者从事商业项目,其成果原则上就不应包含任何基于 MATLAB 的内容,这对国内相关企业和研究学者带来的影响不可忽视。这件事在国内社交媒体迅速发酵并登上热搜,引发学术界和技术界的广泛讨论。 现在只是禁止了实体名单的上的几所高校,但是谁又能保证后续不会加码制裁打击中国的其他高校呢,抑制中国科技发展呢?因此通过此次禁用事件,我们有理由说现在已经到了后MATLAB时代!急需找到MATLAB合适的替代品。不然就是被动挨打!好不容易有个WPS能取代OFFICE了,但还要等待多少年才能出现MATLAB的替代品呢?在哈工大、哈工程的MATLAB被禁用之后关于MATLAB的讨论便成为了热门话题。在大部分人着眼于寻找MATLAB替代品时,最近有一个国产软件TRUFFER站出来了:我就是MATLAB的替代品。吹牛还是真的(写到这,本人心里很紧张,科技界有很多人特别能吹)?个人认为:替代难度很大,需要时间!更需要脚踏实地的去做,而不是喊口号。考研也是如此!看到空喊口号的人,也见过脚踏实地学习的人!完全两种状态!一个是在做梦,一个是在做事!启动界面!MATLAB自问世起,就以数值计算称雄软件界。MATLAB进行数值计算的基本处理单位是数组(或称矩阵和阵列),并且数组维数是自动按照规则确定的。这一方面使MATLAB程序可以被高度向量化,另方面语法的极度简单化使得用户易写易读。让我们一起来感受它的魅力吧!软件界面!版本一直在持续更新!他山之石!网上有很多关于MATLAB的公众 号,里面有很多文章值得阅读!闲暇时间可以用来浏览。不知这些公 众号的发展前景会如何?这七年来,本人的公 众号一直在更新文章,只有在手术期间的一周内停止了更文!现在Chatgpt出现了,使得很多简单的代码工作可以由机器来完成,这对人类来说是一个挑战。但很多事情也并非机器就能完成的,因为创新的思路很难由机器代替。所以将来对编程人员的要求会越来越高。仅仅成为一个码农将没有太大的工作选择范围,因为机器可能会替代你。但是如果能成为了一名算法工程师,那么机器取代的可能性很小很小,至少在未来二十年内应该不会有这风险。大家加油学之前也要把握住社会发展的趋势,为自己将来的工作和科研选择一个方向,这很有必要。做事需要有规划,然后就是行动。2024年了,听听老师对本课程的视频介绍!每年都会录制视频!那我能做的就是争取十年十个样,让更多的人喜欢上这个软件和仿真!我想如果有了十款课程,总有一款适合你吧!绪论完结!题外话领域万象!2015年,作为全球手机芯片霸主的高通宣布进军服务器芯片市场,并正式对外展示了其首款服务器芯片,不到3年就遭遇重重挫折而退出。从2010年到2019年,英特尔在移动芯片领域努力了十年,但始终未能撼动高通的地位,最终先后放弃了移动处理器和手机基带芯片两大业务,告别了移动芯片的市场。这两个例子告诉我们,即使是财大气粗的高通和英特尔,想要在半导体领域拓展新的市场,都是九死一生。半导体并不是有钱就能干的。如今的华为该何去何从呢?毕竟芯片被卡脖子了。不知何时能凤凰涅槃!2023年7月,依旧在被卡脖子!2023年9月,自主研制的芯片横空出世!麒麟芯片回来了! 修订记录20200702 完成初稿;20200717 修订内容;20230708 更新至v2;20231009 更新至v3;20240909 更新至v4;来源:通信工程师专辑

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈