💥💥💞💞欢迎来到Matlab仿真科研站博客之家💞💞💥💥
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:Matlab仿真科研站博客之家
🏆代码获取方式:
💥扫描文章底部QQ二维码💥
⛳️座右铭:行百里者,半于九十;路漫漫其修远兮,吾将上下而求索。
⛄更多Matlab图像处理(仿真科研站版)仿真内容点击👇
Matlab图像处理(仿真科研站版)
⛄一、硬币图像识别简介
本设计为硬币图像识别统计装置,通过数码相机获取平铺无重叠堆积的硬币的图像,并通过Matlab工具处理后统计硬币的数目。
1 图像格式转换
取的图像格式为RGB彩色图像,需要先将其转换为8位256级的灰度图像。本程序采用Matlab的图像处理工具箱的函数rgb2gray来实现。
rgb2gray()
功能:
转换RGB图像或颜色映像表为灰度图像。
语法:
I = rgb2gray(RGB)
newmap = rgb2gray(map)
2 去噪及特征提取
上图1-1为硬币统计的局部图片,图中可见,硬币主体部分和背景以及图像有着明显的区别,可以通过选取合适的阈值进行二值化,从而提取出硬币的特征。
图1-2为此图像的直方图,从图中可见到比较明显的阈值分界点,但是并不是非常的明显,这是因为,图中有很多的硬币因为反光的缘故,导致主体部分有些发白,如图1-3所示。
3 灰度调整
对于这些发白部分,我们采用灰度调整及中值滤波进行处理,在matlab中,提供了两个函数进行相应的操作,其中imadjust进行灰度调整,其用法如下
Imadjst(f,[low_in high_in],[low_out high_out],gamma)
Gamma所表示的意义:
1 -------- 凹曲线
<1 -------- 凸直线
=1 -------- 直线
medfilt2用于进行中值滤波处理,其用法如下
F=medfilt2(f,[m n]);
f为输入图像
[m n]为中值滤波模板
F是中值滤波后输出的图像。
图4-1经过灰度调整及中值滤波后的图像如图1-4所示,可见,经过中值滤波后,硬币的主体部分有了较大的改善。
4 二值化处理
经过滤波后,即可对图像进行二值化处理,首先,我们采用人工选择阈值的方法进行二值化,由图可见,对于本幅图片,其合适的阈值在50~100之间,通过试验,我们选取的值为80。
对图像二值化处理的程序如下:
[M,N]=size(F);
for x=1:M
for y=1:N
if F(x,y)<80
F(x,y)=0; %低于阈值的值黑
else
F(x,y)=255; %高于阈值的值白
end
end
end
5 阈值分割
当然仍有许多模糊的硬币管脚残影,但已经将硬币的主体很好的识别了出来,采用人工选择阈值的方法虽然可以成功分离出硬币的主体,但是这个阈值这是针对这张图片有效,对于获取的其它图片,这个阈值并不能正确地对图像进行二值化处理,因此我们决定采用自动阈值分割的方法来对图像进行二值化。
我们所选用的自动阈值分割方法为Otsu法,它是一种使类间方差最大的自动确定阈值的方法,该方法具有简单、处理速度快的特点,是一种常用的阈值选取方法。
在matlab中,提供了一个函数graythresh来实现Otsu法阈值分割,其用法如下:
T=graythresh(f);
其中,f为待进行阈值分割的灰度图像,T为返回的分割灰度比例,将其乘于256即为Otsu法划定的分割阈值。
优化后的程序如下:
T=graythresh(F);
由图中可见,噪声被有效的滤除了,但是,去除了噪声的同时,也使部分接触紧密的硬币在闭运算后可能连成一个整体,如图1-8中的红圈所示,因此在此后的识别统计中需要对其进行特殊的处理。
⛄二、部分源代码
% function BlobsDemo()
% echo on;
% Startup code.
tic; % Start timer.
clc; % Clear command window.
clearvars; % Get rid of variables from prior run of this m-file.
fprintf(‘Running BlobsDemo.m…\n’); % Message sent to command window.
workspace; % Make sure the workspace panel with all the variables is showing.
imtool close all; % Close all imtool figures.
format long g;
format compact;
captionFontSize = 14;
% Check that user has the Image Processing Toolbox installed.
hasIPT = license(‘test’, ‘image_toolbox’);
if ~hasIPT
% User does not have the toolbox installed.
message = sprintf(‘Sorry, but you do not seem to have the Image Processing Toolbox.\nDo you want to try to continue anyway?’);
reply = questdlg(message, ‘Toolbox missing’, ‘Yes’, ‘No’, ‘Yes’);
if strcmpi(reply, ‘No’)
% User said No, so exit.
return;
end
end
% Read in a standard MATLAB demo image of coins (US nickles and dimes, which are 5 cent and 10 cent coins)
baseFileName = ‘coins.png’;
folder = fileparts(which(baseFileName)); % Determine where demo folder is (works with all versions).
fullFileName = fullfile(folder, baseFileName);
if ~exist(fullFileName, ‘file’)
% It doesn’t exist in the current folder.
% Look on the search path.
if ~exist(baseFileName, ‘file’)
% It doesn’t exist on the search path either.
% Alert user that we can’t find the image.
warningMessage = sprintf(‘Error: the input image file\n%s\nwas not found.\nClick OK to exit the demo.’, fullFileName);
uiwait(warndlg(warningMessage));
fprintf(1, ‘Finished running BlobsDemo.m.\n’);
return;
end
% Found it on the search path. Construct the file name.
fullFileName = baseFileName; % Note: don’t prepend the folder.
end
% If we get here, we should have found the image file.
originalImage = imread(fullFileName);
% Check to make sure that it is grayscale, just in case the user substituted their own image.
[rows, columns, numberOfColorChannels] = size(originalImage);
if numberOfColorChannels > 1
promptMessage = sprintf(‘Your image file has %d color channels.\nThis demo was designed for grayscale images.\nDo you want me to convert it to grayscale for you so you can continue?’, numberOfColorChannels);
button = questdlg(promptMessage, ‘Continue’, ‘Convert and Continue’, ‘Cancel’, ‘Convert and Continue’);
if strcmp(button, ‘Cancel’)
fprintf(1, ‘Finished running BlobsDemo.m.\n’);
return;
end
% Do the conversion using standard book formula
originalImage = rgb2gray(originalImage);
end
% Display the grayscale image.
subplot(3, 3, 1);
imshow(originalImage);
% Maximize the figure window.
set(gcf, ‘units’,‘normalized’,‘outerposition’,[0 0 1 1]);
% Force it to display RIGHT NOW (otherwise it might not display until it’s all done, unless you’ve stopped at a breakpoint.)
drawnow;
caption = sprintf(‘Original “coins” image showing\n6 nickels (the larger coins) and 4 dimes (the smaller coins).’);
title(caption, ‘FontSize’, captionFontSize);
axis image; % Make sure image is not artificially stretched because of screen’s aspect ratio.
% Just for fun, let’s get its histogram and display it.
[pixelCount, grayLevels] = imhist(originalImage);
subplot(3, 3, 2);
bar(pixelCount);
title(‘Histogram of original image’, ‘FontSize’, captionFontSize);
xlim([0 grayLevels(end)]); % Scale x axis manually.
grid on;
% Threshold the image to get a binary image (only 0’s and 1’s) of class “logical.”
% Method #1: using im2bw()
% normalizedThresholdValue = 0.4; % In range 0 to 1.
% thresholdValue = normalizedThresholdValue * max(max(originalImage)); % Gray Levels.
% binaryImage = im2bw(originalImage, normalizedThresholdValue); % One way to threshold to binary
% Method #2: using a logical operation.
thresholdValue = 100;
binaryImage = originalImage > thresholdValue; % Bright objects will be chosen if you use >.
% ========== IMPORTANT OPTION ============================================================
% Use < if you want to find dark objects instead of bright objects.
% binaryImage = originalImage < thresholdValue; % Dark objects will be chosen if you use <.
% Do a “hole fill” to get rid of any background pixels or “holes” inside the blobs.
binaryImage = imfill(binaryImage, ‘holes’);
% Show the threshold as a vertical red bar on the histogram.
hold on;
maxYValue = ylim;
line([thresholdValue, thresholdValue], maxYValue, ‘Color’, ‘r’);
% Place a text label on the bar chart showing the threshold.
annotationText = sprintf(‘Thresholded at %d gray levels’, thresholdValue);
% For text(), the x and y need to be of the data class “double” so let’s cast both to double.
text(double(thresholdValue + 5), double(0.5 * maxYValue(2)), annotationText, ‘FontSize’, 10, ‘Color’, [0 .5 0]);
text(double(thresholdValue - 70), double(0.94 * maxYValue(2)), ‘Background’, ‘FontSize’, 10, ‘Color’, [0 0 .5]);
text(double(thresholdValue + 50), double(0.94 * maxYValue(2)), ‘Foreground’, ‘FontSize’, 10, ‘Color’, [0 0 .5]);
% Display the binary image.
subplot(3, 3, 3);
imshow(binaryImage);
title(‘Binary Image, obtained by thresholding’, ‘FontSize’, captionFontSize);
% Identify individual blobs by seeing which pixels are connected to each other.
% Each group of connected pixels will be given a label, a number, to identify it and distinguish it from the other blobs.
% Do connected components labeling with either bwlabel() or bwconncomp().
labeledImage = bwlabel(binaryImage, 8); % Label each blob so we can make measurements of it
% labeledImage is an integer-valued image where all pixels in the blobs have values of 1, or 2, or 3, or … etc.
subplot(3, 3, 4);
imshow(labeledImage, []); % Show the gray scale image.
title(‘Labeled Image, from bwlabel()’, ‘FontSize’, captionFontSize);
% Let’s assign each blob a different color to visually show the user the distinct blobs.
coloredLabels = label2rgb (labeledImage, ‘hsv’, ‘k’, ‘shuffle’); % pseudo random color labels
% coloredLabels is an RGB image. We could have applied a colormap instead (but only with R2014b and later)
subplot(3, 3, 5);
imshow(coloredLabels);
axis image; % Make sure image is not artificially stretched because of screen’s aspect ratio.
caption = sprintf(‘Pseudo colored labels, from label2rgb().\nBlobs are numbered from top to bottom, then from left to right.’);
title(caption, ‘FontSize’, captionFontSize);
% Get all the blob properties. Can only pass in originalImage in version R2008a and later.
blobMeasurements = regionprops(labeledImage, originalImage, ‘all’);
numberOfBlobs = size(blobMeasurements, 1);
% bwboundaries() returns a cell array, where each cell contains the row/column coordinates for an object in the image.
% Plot the borders of all the coins on the original grayscale image using the coordinates returned by bwboundaries.
subplot(3, 3, 6);
imshow(originalImage);
title(‘Outlines, from bwboundaries()’, ‘FontSize’, captionFontSize);
axis image; % Make sure image is not artificially stretched because of screen’s aspect ratio.
hold on;
boundaries = bwboundaries(binaryImage);
numberOfBoundaries = size(boundaries, 1);
for k = 1 : numberOfBoundaries
thisBoundary = boundaries{k};
plot(thisBoundary(:,2), thisBoundary(:,1), ‘g’, ‘LineWidth’, 2);
end
hold off;
textFontSize = 14; % Used to control size of “blob number” labels put atop the image.
labelShiftX = -7; % Used to align the labels in the centers of the coins.
blobECD = zeros(1, numberOfBlobs);
% Print header line in the command window.
fprintf(1,‘Blob # Mean Intensity Area Perimeter Centroid Diameter\n’);
% Loop over all blobs printing their measurements to the command window.
for k = 1 : numberOfBlobs % Loop through all blobs.
% Find the mean of each blob. (R2008a has a better way where you can pass the original image
% directly into regionprops. The way below works for all versions including earlier versions.)
thisBlobsPixels = blobMeasurements(k).PixelIdxList; % Get list of pixels in current blob.
meanGL = mean(originalImage(thisBlobsPixels)); % Find mean intensity (in original image!)
meanGL2008a = blobMeasurements(k).MeanIntensity; % Mean again, but only for version >= R2008a
blobArea = blobMeasurements(k).Area; % Get area.
blobPerimeter = blobMeasurements(k).Perimeter; % Get perimeter.
blobCentroid = blobMeasurements(k).Centroid; % Get centroid one at a time
blobECD(k) = sqrt(4 * blobArea / pi); % Compute ECD - Equivalent Circular Diameter.
fprintf(1,'#%2d %17.1f %11.1f %8.1f %8.1f %8.1f % 8.1f\n', k, meanGL, blobArea, blobPerimeter, blobCentroid, blobECD(k));
% Put the "blob number" labels on the "boundaries" grayscale image.
text(blobCentroid(1) + labelShiftX, blobCentroid(2), num2str(k), 'FontSize', textFontSize, 'FontWeight', 'Bold');
end
% Now, I’ll show you another way to get centroids.
% We can get the centroids of ALL the blobs into 2 arrays,
% one for the centroid x values and one for the centroid y values.
allBlobCentroids = [blobMeasurements.Centroid];
centroidsX = allBlobCentroids(1:2:end-1);
centroidsY = allBlobCentroids(2:2:end);
% Put the labels on the rgb labeled image also.
subplot(3, 3, 5);
for k = 1 : numberOfBlobs % Loop through all blobs.
text(centroidsX(k) + labelShiftX, centroidsY(k), num2str(k), ‘FontSize’, textFontSize, ‘FontWeight’, ‘Bold’);
end
% Now I’ll demonstrate how to select certain blobs based using the ismember() function.
% Let’s say that we wanted to find only those blobs
% with an intensity between 150 and 220 and an area less than 2000 pixels.
% This would give us the three brightest dimes (the smaller coin type).
allBlobIntensities = [blobMeasurements.MeanIntensity];
allBlobAreas = [blobMeasurements.Area];
% Get a list of the blobs that meet our criteria and we need to keep.
% These will be logical indices - lists of true or false depending on whether the feature meets the criteria or not.
% for example [1, 0, 0, 1, 1, 0, 1, …]. Elements 1, 4, 5, 7, … are true, others are false.
allowableIntensityIndexes = (allBlobIntensities > 150) & (allBlobIntensities < 220);
allowableAreaIndexes = allBlobAreas < 2000; % Take the small objects.
% Now let’s get actual indexes, rather than logical indexes, of the features that meet the criteria.
% for example [1, 4, 5, 7, …] to continue using the example from above.
keeperIndexes = find(allowableIntensityIndexes & allowableAreaIndexes);
% Extract only those blobs that meet our criteria, and
% eliminate those blobs that don’t meet our criteria.
% Note how we use ismember() to do this. Result will be an image - the same as labeledImage but with only the blobs listed in keeperIndexes in it.
keeperBlobsImage = ismember(labeledImage, keeperIndexes);
% Re-label with only the keeper blobs kept.
labeledDimeImage = bwlabel(keeperBlobsImage, 8); % Label each blob so we can make measurements of it
% Now we’re done. We have a labeled image of blobs that meet our specified criteria.
subplot(3, 3, 7);
imshow(labeledDimeImage, []);
axis image;
title(‘“Keeper” blobs (3 brightest dimes in a re-labeled image)’, ‘FontSize’, captionFontSize);
% Plot the centroids in the original image in the upper left.
% Dimes will have a red cross, nickels will have a blue X.
message = sprintf(‘Now I will plot the centroids over the original image in the upper left.\nPlease look at the upper left image.’);
reply = questdlg(message, ‘Plot Centroids?’, ‘OK’, ‘Cancel’, ‘Cancel’);
% Note: reply will = ‘’ for Upper right X, ‘OK’ for OK, and ‘Cancel’ for Cancel.
if strcmpi(reply, ‘Cancel’)
return;
end
subplot(3, 3, 1);
hold on; % Don’t blow away image.
for k = 1 : numberOfBlobs % Loop through all keeper blobs.
% Identify if blob #k is a dime or nickel.
itsADime = allBlobAreas(k) < 2200; % Dimes are small.
if itsADime
% Plot dimes with a red +.
plot(centroidsX(k), centroidsY(k), ‘r+’, ‘MarkerSize’, 10, ‘LineWidth’, 2);
else
% Plot dimes with a blue x.
plot(centroidsX(k), centroidsY(k), ‘bx’, ‘MarkerSize’, 10, ‘LineWidth’, 2);
end
end
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]朱俊达.硬币分拣机的分拣与计数[J].技术与市场. 2018,25(02)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
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 旅行商问题(TSP)
4.1.1 单旅行商问题(TSP)
4.1.2 多旅行商问题(MTSP)
4.2 车辆路径问题(VRP)
4.2.1 车辆路径问题(VRP)
4.2.2 带容量的车辆路径问题(CVRP)
4.2.3 带容量+时间窗+距离车辆路径问题(DCTWVRP)
4.2.4 带容量+距离车辆路径问题(DCVRP)
4.2.5 带距离的车辆路径问题(DVRP)
4.2.6 带充电站+时间窗车辆路径问题(ETWVRP)
4.2.3 带多种容量的车辆路径问题(MCVRP)
4.2.4 带距离的多车辆路径问题(MDVRP)
4.2.5 同时取送货的车辆路径问题(SDVRP)
4.2.6 带时间窗+容量的车辆路径问题(TWCVRP)
4.2.6 带时间窗的车辆路径问题(TWVRP)
4.3 多式联运运输问题
4.4 机器人路径规划
4.4.1 避障路径规划
4.4.2 迷宫路径规划
4.4.3 栅格地图路径规划
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 无人机任务分配
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.2 异步电机转子断条故障诊断
7.1.3 滚动体内外圈故障诊断分析
7.1.4 电机故障诊断分析
7.1.5 轴承故障诊断分析
7.1.6 齿轮箱故障诊断分析
7.1.7 三相逆变器故障诊断分析
7.1.8 柴油机故障诊断
7.2 雷达通信
7.2.1 FMCW仿真
7.2.2 GPS抗干扰
7.2.3 雷达LFM
7.2.4 雷达MIMO
7.2.5 雷达测角
7.2.6 雷达成像
7.2.7 雷达定位
7.2.8 雷达回波
7.2.9 雷达检测
7.2.10 雷达数字信号处理
7.2.11 雷达通信
7.2.12 雷达相控阵
7.2.13 雷达信号分析
7.2.14 雷达预警
7.2.15 雷达脉冲压缩
7.2.16 天线方向图
7.2.17 雷达杂波仿真
7.3 生物电信号
7.3.1 肌电信号EMG
7.3.2 脑电信号EEG
7.3.3 心电信号ECG
7.3.4 心脏仿真
7.4 通信系统
7.4.1 DOA估计
7.4.2 LEACH协议
7.4.3 编码译码
7.4.4 变分模态分解
7.4.5 超宽带仿真
7.4.6 多径衰落仿真
7.4.7 蜂窝网络
7.4.8 管道泄漏
7.4.9 经验模态分解
7.4.10 滤波器设计
7.4.11 模拟信号传输
7.4.12 模拟信号调制
7.4.13 数字基带信号
7.4.14 数字信道
7.4.15 数字信号处理
7.4.16 数字信号传输
7.4.17 数字信号去噪
7.4.18 水声通信
7.4.19 通信仿真
7.4.20 无线传输
7.4.21 误码率仿真
7.4.22 现代通信
7.4.23 信道估计
7.4.24 信号检测
7.4.25 信号融合
7.4.26 信号识别
7.4.27 压缩感知
7.4.28 噪声仿真
7.4.29 噪声干扰
7.5 无人机通信
7.6 无线传感器定位及布局方面
7.6.1 WSN定位
7.6.2 高度预估
7.6.3 滤波跟踪
7.6.4 目标定位
7.6.4.1 Dv-Hop定位
7.6.4.2 RSSI定位
7.6.4.3 智能算法优化定位
7.6.5 组合导航
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合