我有下面的代码。我想要找到比特错误率,将集群数据作为一个经过训练的数据,并发送一个测试数据。我能用这个代码做这个吗?我感谢你的积极支持。
clear all;
clc;
T=[ 2+2*i 2-2*i -2+2*i -2-2*i];
A=randn(150,2)+2*ones(150,2); C=randn(150,2)-2*ones(150,2); B=randn(150,2)+2*ones(150,2);
F=randn(150,2)-2*ones(150,2); D=randn(150,2)+2*ones(150,2); G=randn(150,2)-2*ones(150,2);
E=randn(150,2)+2*ones(150,2); H=randn(150,2)-2*ones(150,2);
X = [A; B; D; C; F; E; G; H];
[idx, centroids] = kmeans(X, 4, 'Replicates', 20);
x = X(:,1); y = X(:,2);
figure;
colors = 'rgbk';
[X,Y] = meshgrid(-5:0.05:5, -5:0.05:5);
X = X(:);
Y = Y(:);
figure; hold on;
for idx = 1 : numel(X)
[dummy,ind] = min(sum(bsxfun(@minus, [X(idx) Y(idx)], centroids).^2, 2));
plot(X(idx), Y(idx), [colors(ind), '.']);
end发布于 2014-12-01 02:31:50
好吧,现在你的问题更清楚了。我不明白你在另一篇文章里的意思。好吧,看起来你的T是你的传输字母。请注意,您通过k-means获得的星系团可能与传输字母表中的星系团不一样,所以您必须弄清楚哪个质心距传输字母表最近。我们可以使用以下代码来实现这一点:
gt = zeros(1,4);
for idx = 1 : 4
[dummy,gt(idx)] = min(sum(bsxfun(@minus, [real(T(idx)), imag(T(idx))], centroids).^2, 2));
endgt将包含您的字母表中的哪个符号与数据中的哪个集群质心匹配。为了使结果可重复,我将随机种子生成器设置为1234 (即rng(1234);),然后运行您的代码。它给了我关于gt的以下信息
gt =
4 2 3 1简单地说,gt中的每个元素都告诉您T中的哪个符号与centroids中的质心匹配。因此,gt(1) = 4表示质心#1与传输字母表中的第4个符号匹配,gt(2) = 2表示质心#2与字母表中的第二个符号匹配,依此类推。
因此,给定由T中的字母表组成的测试序列,只需创建测试序列,记住gt是什么。因此,您可以这样做:
rng(1234);
rand_ind = randi(4, 10, 1);
test_sequence = T(rand_ind);
gt_labels = gt(rand_ind);上面的代码将生成一个从1到4的随机整数序列,其中有10个。然后使用T中的字母表创建一个随机测试序列。gt_labels还将包含每个符号相对于集群质心的实际标签。现在,让我们把这些分解成真实的和想象的成分,并加入一些噪声。
x = real(test_sequence).*randn(1, 10);
y = imag(test_sequence).*randn(1, 10);这种噪音..。比方说..。这是在您通过通信通道发送此邮件时添加的。现在我们有了我们真实的和想象的成分,让我们来弄清楚这个序列是如何被分类的。我们将使用x和y,并确定每个点所属的集群:
labels = zeros(1, 10);
for idx = 1 : 10
[dummy,labels(idx)] = min(sum(bsxfun(@minus, [x(idx), y(idx)], centroids).^2, 2));
endlabels将包含您的集群机制如何将每个点分类为。我得到了:
labels =
1 4 3 1 4 1 2 2 2 3同样,这是在传输之前分配给您的测试序列的标签:
gt_labels =
4 3 2 1 1 2 2 1 1 1因此,误码率( BER )只是简单地计算不匹配的数目,并除以总序列。你可以把它乘以100%,得到这个百分比,而不是一个比例。因此:
BER = sum(labels ~= gt_labels) / 10 * 100;
BER =
80因此,我们有80%的误码率.不是很好!
这应该足够让你开始工作了。希望这能有所帮助!
https://stackoverflow.com/questions/27219637
复制相似问题