Matlab领域博客之家博主简介985研究生Matlab领域科研开发者个人主页Matlab领域代码获取方式CSDN Matlab领域—代码获取方式座右铭路漫漫其修远兮吾将上下而求索。更多Matlab信号处理仿真内容点击①Matlab信号处理高阶版②付费专栏Matlab信号处理进阶版③付费专栏Matlab信号处理初级版⛳️关注CSDN Matlab领域更多资源等你来⛄一、激光光和开关键控OOK摩尔斯电码通信项目简介激光 OOK开关键控通信仿真。把文字转摩尔斯电码再转为二进制信号进行 OOK 载波调制经过带衰减与高斯噪声的光学信道接收端解调恢复二进制计算误码率 BER并做 SNR 扫参实验绘制 BER-SNR 曲线最后把二进制还原成摩尔斯码、再还原原始文字。依赖functions文件夹下的自定义函数morseEncoder、morseToBinary、ookModulator、opticalChannel、ookDemodulator、binaryToMorse、morseDecoderclc; clear; close all; addpath(functions); rng(1); message pillai ; message upper(message);clc清空命令行窗口clear清空工作区所有变量close all关闭所有已打开的图像窗口addpath(functions)将 functions 文件夹加入 MATLAB 搜索路径用来调用自定义函数rng(1)固定随机数种子保证每次运行生成的噪声完全一致实验可复现message pillai定义待传输原始文本upper(message)全部转为大写摩尔斯编码不区分大小写统一格式% Convert message to Morse morseMessage morseEncoder(message); disp(Original Message:); disp(message); disp(Morse Code:); disp(morseMessage);morseEncoder(message)自定义摩尔斯编码函数文本 → 摩尔斯电码点.、划-disp在命令窗口打印原始消息和对应的摩尔斯码%% Convert Morse timing into binary binarySignal morseToBinary(message); %%disp(Binary Signal:); %%disp(binarySignal);morseToBinary自定义函数将摩尔斯电码按照时序规则转换成 0/1 二进制序列1激光开启对应摩尔斯的点、划0激光关闭符号、字符之间的间隔两行 disp 被注释取消注释可以打印二进制序列查看%% Plot the binary signal figure; stairs(binarySignal, LineWidth, 2); ylim([-0.2 1.2]); yticks([0 1]); yticklabels({Laser OFF, Laser ON}); xlabel(Time Units); ylabel(Laser State); title(Morse Code Binary Signal); grid on;figure新建一张画布stairs绘制阶梯图用来表示二进制电平信号线宽 2ylim设置 Y 轴范围留出边距图形美观yticks、yticklabelsY 轴刻度 0 激光关闭1 激光开启xlabelX 轴标签时间单位摩尔斯时序单元ylabelY 轴标签激光状态title图标题摩尔斯电码二进制信号grid on开启网格%% OOK Modulation % Carrier parameters fc 10; samplesPerUnit 100; % OOK modulation [ookSignal, t, digitalSignal] ... ookModulator(binarySignal, fc, samplesPerUnit); % Plot OOK signal figure; plot(t, ookSignal, LineWidth, 1); xlabel(Time); ylabel(Amplitude); title(OOK Modulated Laser Signal); grid on; xlim([0 27]);OOK On-Off Keying开关键控调制有载波 1无载波 0适合激光通信fc 10载波频率10HzsamplesPerUnit 100每个摩尔斯时间单元采样 100 个点提高波形分辨率ookModulatorOOK 调制函数输入二进制信号、载波频率、采样点数输出调制后的 OOK 波形ookSignal、时间向量tplot画出调制之后的激光载波信号xlim([0 27])限定 X 轴 0~27只观察有效传输时间段%% Optical Channel Simulation %% Optical Channel attenuation 0.7; SNR_dB 10; receivedSignal opticalChannel(ookSignal, attenuation, SNR_dB); % Plot received signal figure; plot(t, receivedSignal); xlabel(Time); ylabel(Amplitude); title(Received Signal After Optical Channel); grid on; xlim([0 27]);模拟大气光学传输信道attenuation0.7信道衰减系数信号幅值乘以 0.7模拟光在空气中的能量损耗SNR_dB10信噪比单位 dB数值越小噪声越强opticalChannel自定义信道函数对 OOK 信号做衰减叠加高斯白噪声 AWGN得到接收端收到的信号receivedSignal绘图观察经过衰减 噪声之后收到的波形%% OOK Demodulation threshold 0.1; detectedSignal ookDemodulator( ... receivedSignal, samplesPerUnit, threshold); %%disp(Detected Binary Signal:); %%disp(double(detectedSignal)); % Plot detected signal figure; stairs(double(detectedSignal), LineWidth, 2); ylim([-0.2 1.2]); yticks([0 1]); yticklabels({Laser OFF, Laser ON}); xlabel(Time Units); ylabel(Detected State); title(Demodulated OOK Signal); grid on;接收端 OOK 解调能量检测 阈值判决threshold 0.1判决阈值。对每个时间单元计算信号能量能量 阈值判为 1小于阈值判为 0ookDemodulator解调函数输入接收信号、每单元采样点数、阈值输出解调后的二进制序列detectedSignalstairs绘制解调恢复出来的二进制阶梯波形%% BER Calculation % Convert detected signal to the same format as binarySignal detectedSignal double(detectedSignal); % Count bit errors bitErrors sum(binarySignal ~ detectedSignal); % Calculate Bit Error Rate BER bitErrors / length(binarySignal); disp(Number of Bit Errors:); disp(bitErrors); disp(Bit Error Rate (BER):); disp(BER);BERBit Error Rate误码率通信系统核心评价指标binarySignal ~ detectedSignal逐位对比原始发送二进制和解调得到的二进制不相等即为误码sum(...)统计总误码个数BER 误码数 / 总比特数代表传输出错比特占全部比特的比例在命令窗口打印误码数量和误码率%% BER vs SNR Experiment SNR_range -5:1:15; BER_values zeros(size(SNR_range)); % Generate one fixed noise sequence attenuatedSignal attenuation * ookSignal; baseNoise randn(size(attenuatedSignal)); for k 1:length(SNR_range) currentSNR SNR_range(k); % Calculate required noise power signalPower mean(attenuatedSignal.^2); noisePower signalPower / (10^(currentSNR/10)); % Generate noise using the fixed noise pattern noise sqrt(noisePower) * baseNoise; % Received signal testReceivedSignal attenuatedSignal noise; % Divide signal into Morse time units testMatrix reshape(testReceivedSignal, samplesPerUnit, []); % Energy detection testEnergy mean(testMatrix.^2); % Threshold detection testDetected testEnergy threshold; % Calculate BER testErrors sum(binarySignal ~ testDetected); BER_values(k) testErrors / length(binarySignal); end % Display results disp(SNR values:); disp(SNR_range); disp(BER values:); disp(BER_values); % Plot BER vs SNR figure; semilogy(SNR_range, BER_values, -o, LineWidth, 1.5); xlabel(SNR (dB)); ylabel(Bit Error Rate (BER)); title(BER vs SNR for OOK Laser Communication); grid on;信噪比 SNR 扫描实验绘制 BER 随 SNR 变化的曲线SNR_range -5:1:15信噪比从 - 5dB 到 15dB步长 1dB遍历多组噪声强度baseNoise randn(...)生成一组基础高斯噪声波形后面只缩放幅度保证对比公平循环内每一个 SNR计算衰减后信号的平均功率根据目标 SNR算出对应的噪声功率缩放基础噪声叠加到衰减信号得到接收测试信号reshape把信号按每个时间单元分块计算每个单元的信号能量阈值判决得到二进制比特统计误码计算当前 SNR 下的 BER存入数组semilogy半对数坐标绘图Y 轴 BER 使用对数刻度BER 跨度大对数坐标更适合观察预期规律SNR 越大噪声越小BER 越小SNR 越低误码越多。%% Decode Binary Back to Morse decodedMorse binaryToMorse(detectedSignal); disp(Decoded Morse:); disp(decodedMorse); %% Decode Morse Back to Text decodedMessage morseDecoder(decodedMorse); disp(Recovered Message:); disp(decodedMessage);反向解码流程把接收解调后的二进制还原成原始文字binaryToMorse二进制时序序列 → 摩尔斯电码morseDecoder摩尔斯电码 → 文本消息控制台输出解码后的摩尔斯码与最终恢复出来的消息。如果 BER0恢复文字和原始PILLAI一致整体流程总结文本 → 摩尔斯编码 → 二进制时序信号 → OOK 载波调制 → 光学信道衰减 高斯噪声 → OOK 解调 → 二进制恢复 → 计算 BER → 扫描 SNR 绘制 BER 曲线 → 二进制还原摩尔斯码 → 还原原始文本⛄二、部分源代码和运行步骤1 部分代码clc;clear;close all;addpath(‘functions’);rng(1);message “pillai” ;message upper(message);% Convert message to MorsemorseMessage morseEncoder(message);disp(“Original Message:”);disp(message);disp(“Morse Code:”);disp(morseMessage);%% Convert Morse timing into binarybinarySignal morseToBinary(message);%%disp(“Binary Signal:”);%%disp(binarySignal);%% Plot the binary signalfigure;stairs(binarySignal, ‘LineWidth’, 2);ylim([-0.2 1.2]);yticks([0 1]);yticklabels({‘Laser OFF’, ‘Laser ON’});xlabel(‘Time Units’);ylabel(‘Laser State’);title(‘Morse Code Binary Signal’);grid on;2 通用运行步骤1直接运行main.m即可一键出图⛄三、运行结果⛄四、matlab版本及参考文献1 matlab版本2019b2 参考文献[1]阮余豪;李靖波.浅论摩尔斯电码的构成原理与发展应用[J].中国设备工程. 20233 备注简介此部分摘自互联网仅供参考若侵权联系删除⛄五、仿真咨询与程序定制1 各类智能优化算法改进及应用1.1 PID优化1.2 VMD优化1.3 配电网重构1.4 三维装箱1.5 微电网优化1.6 优化布局1.7 优化参数1.8 优化成本1.9 优化充电1.10 优化调度1.11 优化电价1.12 优化发车1.13 优化分配1.14 优化覆盖1.15 优化控制1.16 优化库存1.17 优化路由1.18 优化设计1.19 优化位置1.20 优化吸波1.21 优化选址1.22 优化运行1.23 优化指派1.24 优化组合1.25 车间调度1.26 生产调度1.27 经济调度1.28 装配线调度1.29 水库调度1.30 货位优化1.31 公交排班优化1.32 集装箱船配载优化1.33 水泵组合优化1.34 医疗资源分配优化1.35 可视域基站和无人机选址优化2 机器学习和深度学习分类与预测2.1 机器学习和深度学习分类2.1.1 BiLSTM双向长短时记忆神经网络分类2.1.2 BP神经网络分类2.1.3 CNN卷积神经网络分类2.1.4 DBN深度置信网络分类2.1.5 DELM深度学习极限学习机分类2.1.6 ELMAN递归神经网络分类2.1.7 ELM极限学习机分类2.1.8 GRNN广义回归神经网络分类2.1.9 GRU门控循环单元分类2.1.10 KELM混合核极限学习机分类2.1.11 KNN分类2.1.12 LSSVM最小二乘法支持向量机分类2.1.13 LSTM长短时记忆网络分类2.1.14 MLP全连接神经网络分类2.1.15 PNN概率神经网络分类2.1.16 RELM鲁棒极限学习机分类2.1.17 RF随机森林分类2.1.18 SCN随机配置网络模型分类2.1.19 SVM支持向量机分类2.1.20 XGBOOST分类2.2 机器学习和深度学习预测2.2.1 ANFIS自适应模糊神经网络预测2.2.2 ANN人工神经网络预测2.2.3 ARMA自回归滑动平均模型预测2.2.4 BF粒子滤波预测2.2.5 BiLSTM双向长短时记忆神经网络预测2.2.6 BLS宽度学习神经网络预测2.2.7 BP神经网络预测2.2.8 CNN卷积神经网络预测2.2.9 DBN深度置信网络预测2.2.10 DELM深度学习极限学习机预测2.2.11 DKELM回归预测2.2.12 ELMAN递归神经网络预测2.2.13 ELM极限学习机预测2.2.14 ESN回声状态网络预测2.2.15 FNN前馈神经网络预测2.2.16 GMDN预测2.2.17 GMM高斯混合模型预测2.2.18 GRNN广义回归神经网络预测2.2.19 GRU门控循环单元预测2.2.20 KELM混合核极限学习机预测2.2.21 LMS最小均方算法预测2.2.22 LSSVM最小二乘法支持向量机预测2.2.23 LSTM长短时记忆网络预测2.2.24 RBF径向基函数神经网络预测2.2.25 RELM鲁棒极限学习机预测2.2.26 RF随机森林预测2.2.27 RNN循环神经网络预测2.2.28 RVM相关向量机预测2.2.29 SVM支持向量机预测2.2.30 TCN时间卷积神经网络预测2.2.31 XGBoost回归预测2.2.32 模糊预测2.2.33 奇异谱分析方法SSA时间序列预测2.3 机器学习和深度学习实际应用预测CPI指数预测、PM2.5浓度预测、SOC预测、财务预警预测、产量预测、车位预测、虫情预测、带钢厚度预测、电池健康状态预测、电力负荷预测、房价预测、腐蚀率预测、故障诊断预测、光伏功率预测、轨迹预测、航空发动机寿命预测、汇率预测、混凝土强度预测、加热炉炉温预测、价格预测、交通流预测、居民消费指数预测、空气质量预测、粮食温度预测、气温预测、清水值预测、失业率预测、用电量预测、运输量预测、制造业采购经理指数预测3 图像处理方面3.1 图像边缘检测3.2 图像处理3.3 图像分割3.4 图像分类3.5 图像跟踪3.6 图像加密解密3.7 图像检索3.8 图像配准3.9 图像拼接3.10 图像评价3.11 图像去噪3.12 图像融合3.13 图像识别3.13.1 表盘识别3.13.2 车道线识别3.13.3 车辆计数3.13.4 车辆识别3.13.5 车牌识别3.13.6 车位识别3.13.7 尺寸检测3.13.8 答题卡识别3.13.9 电器识别3.13.10 跌倒检测3.13.11 动物识别3.13.12 二维码识别3.13.13 发票识别3.13.14 服装识别3.13.15 汉字识别3.13.16 红绿灯识别3.13.17 虹膜识别3.13.18 火灾检测3.13.19 疾病分类3.13.20 交通标志识别3.13.21 卡号识别3.13.22 口罩识别3.13.23 裂缝识别3.13.24 目标跟踪3.13.25 疲劳检测3.13.26 旗帜识别3.13.27 青草识别3.13.28 人脸识别3.13.29 人民币识别3.13.30 身份证识别3.13.31 手势识别3.13.32 数字字母识别3.13.33 手掌识别3.13.34 树叶识别3.13.35 水果识别3.13.36 条形码识别3.13.37 温度检测3.13.38 瑕疵检测3.13.39 芯片检测3.13.40 行为识别3.13.41 验证码识别3.13.42 药材识别3.13.43 硬币识别3.13.44 邮政编码识别3.13.45 纸牌识别3.13.46 指纹识别3.14 图像修复3.15 图像压缩3.16 图像隐写3.17 图像增强3.18 图像重建4 路径规划方面4.1 旅行商问题TSP4.1.1 单旅行商问题TSP4.1.2 多旅行商问题MTSP4.2 车辆路径问题VRP4.2.1 车辆路径问题VRP4.2.2 带容量的车辆路径问题CVRP4.2.3 带容量时间窗距离车辆路径问题DCTWVRP4.2.4 带容量距离车辆路径问题DCVRP4.2.5 带距离的车辆路径问题DVRP4.2.6 带充电站时间窗车辆路径问题ETWVRP4.2.7 带多种容量的车辆路径问题MCVRP4.2.8 带距离的多车辆路径问题MDVRP4.2.9 同时取送货的车辆路径问题SDVRP4.2.10 带时间窗容量的车辆路径问题TWCVRP4.2.11 带时间窗的车辆路径问题TWVRP4.3 多式联运运输问题4.4 机器人路径规划4.4.1 避障路径规划4.4.2 机器人轨迹跟踪4.4.3 机器人编队4.4.4 机器人导航4.4.5 机器人定位4.4.6 机器人控制4.4.7 机器人路径规划4.4.8 机器人任务分配4.4.9 机器人搜索4.4.10 机器人运输4.4.11 迷宫路径规划4.4.12 水下机器人路径规划4.4.13 栅格地图路径规划4.5 配送路径规划4.5.1 冷链配送路径规划4.5.2 外卖配送路径规划4.5.3 口罩配送路径规划4.5.4 药品配送路径规划4.5.5 含充电站配送路径规划4.5.6 连锁超市配送路径规划4.5.7 车辆协同无人机配送路径规划4.6 无人机路径规划4.6.1 飞行器仿真4.6.2 无人机飞行作业4.6.3 无人机轨迹跟踪4.6.4 无人机集群仿真4.6.5 卡车无人机4.6.6 目标搜索4.6.7 三维路径规划4.6.8 无人机编队4.6.9 无人机导航4.6.10 无人机吊运4.6.11 无人机对抗4.6.12 无人机覆盖4.6.13 无人机检测4.6.14 无人机控制4.6.15 无人机求援4.6.16 无人机位姿估计4.6.17 无人机系统4.6.18 无人机侦查4.6.19 无人机联盟4.6.20 无人机协同任务4.6.21 异构无人机4.7 水下飞行器4.8 无人车路径规划4.9 无人艇路径规划4.10 物流选址4.11 车辆控制4.12 多智能体路径规划4.12.1 多智能体编队4.12.2 多智能体控制4.12.3 多智能体路径规划4.12.4 多智能体协同5 语音处理5.1 语音情感识别5.2 声源定位5.3 特征提取5.4 语音编码5.5 语音处理5.6 语音分离5.7 语音分析5.8 语音合成5.9 语音加密5.10 语音去噪5.11 语音识别5.12 语音压缩5.13 语音隐藏6 元胞自动机方面6.1 元胞自动机病毒仿真6.2 元胞自动机城市规划6.3 元胞自动机交通流6.4 元胞自动机气体6.5 元胞自动机人员疏散6.6 元胞自动机森林火灾6.7 元胞自动机生命游戏7 信号处理7.1 机械振动信号处理7.1.1 故障信号7.1.1.1 齿轮损伤识别7.1.1.2 异步电机转子断条故障诊断7.1.1.3 滚动体内外圈故障诊断分析7.1.1.4 电机故障诊断分析7.1.1.5 轴承故障诊断分析7.1.1.6 齿轮箱故障诊断分析7.1.1.7 三相逆变器故障诊断分析7.1.1.8 柴油机故障诊断7.1.2 管道泄漏7.1.3 振动信号7.2 生物医学信号处理7.2.1 肌电信号EMG7.2.2 脑电信号EEG7.2.3 乳腺癌诊断7.2.4 生物电信号7.2.5 心电信号ECG7.2.6 心血管7.2.7 心脏仿真7.2.8 血压7.3 声呐探测信号处理7.3.1 声呐7.3.2 水声通信7.4 通信工程信号处理7.4.1 超声波信号处理7.4.2 导航定位7.4.3 航天航空7.4.4 空间识别7.4.5 雷达通信7.4.5.1 FMCW仿真7.4.5.2 GPS抗干扰7.4.5.3 雷达LFM7.4.5.4 雷达MIMO7.4.5.5 雷达测角7.4.5.6 雷达成像7.4.5.7 雷达定位7.4.5.8 雷达回波7.4.5.9 雷达检测7.4.5.10 雷达数字信号处理7.4.5.11 雷达通信7.4.5.12 雷达相控阵7.4.5.13 雷达信号分析7.4.5.14 雷达预警7.4.5.15 雷达脉冲压缩7.4.5.16 天线方向图7.4.5.17 雷达杂波仿真7.4.6 模拟信号处理7.4.7 时差绘制7.4.8 数字信道处理7.4.9 数字信号处理7.4.10 无线通信7.4.11 姿态解算**7.4.12 资源分配 **7.5 自动测量信号处理**7.5.1 参数估计 ****7.5.2 电动汽车动力电池管理 ****7.5.3 高度预估 **8 物理应用8.1 物理学分支力学8.1.1 材料力学8.1.2 弹性力学8.1.3 动力学8.1.4 分析力学8.1.5 固体力学8.1.6 结构力学8.1.7 静力学8.1.8 空气动力学8.1.9 流体力学8.1.10 塑性力学8.1.11 运动学8.2 物理学其他分支8.2.1 表面物理学8.2.2 超声学8.2.3 次声学8.2.4 电磁学8.2.5 电动力学8.2.6 电学8.2.7 高压物理学8.2.8 金属物理学8.2.9 光学8.2.10 核物理学8.2.11 金属物理学8.2.12 量子力学8.2.13 热力学8.2.14 热学8.2.15 声学8.2.16 水声学8.3 物理应用8.3.1 地理学8.3.2 化学化工8.3.3 生物8.3.4 其他