矩阵维度与通道

#include "highgui.h"
#include "cv.h"
#include "cxcore.h"
#include "stdio.h"
#include "stdlib.h"

#include <iostream>


int main(int argc, char* argv[])
{
	float data[18] =
	{
		1, 2, 3, 4, 5, 6,
		2, 3, 4, 5, 6, 7,
		3, 4, 5, 6, 7, 8,
	};

	CvMat mat;
	cvInitMatHeader(&mat, 3, 2, CV_32FC3, data);  // CV_32FC1 是代表的是32位的单通道的,CV_32FC3是三通道的,

	for (int y = 0; y < mat.rows; y++)
	{
		for (int x = 0; x < mat.cols; x++)
		{
			CvScalar value = cvGet2D(&mat, y, x); // 加Real的就是单通道的访问,这个是一个二维的矩阵,维是代表的一个点用几个坐标表示,

			std::cout << "( " << value.val[0] << " "<< value.val[1] << " " << value.val[2] << " ) " << " ";
		}
		std::cout << std::endl;
	}

	
	
	return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常感谢您的指正,代码中确实存在一些矩阵维度不一致的问题。以下是经过修正后的代码: ```matlab %% OFDM 参数设置 N = 64; % 基带子载波数 cp_len = 16; % 循环前缀长度 num_frames = 100; % OFDM符号的数量 num_subframes = 10; % 子帧的数量 num_symbols = num_frames * num_subframes; % 符号总数 num_channels = 2; % 通道数 num_taps = 4; % 信道时延 SNR = 20; % 信噪比 %% 生成OFDM符号 tx_data = randi([0, 1], N, num_symbols); tx_symbols = ifft(tx_data); tx_symbols_cp = [tx_symbols((end-cp_len+1):end, :); tx_symbols]; %% 生成多普勒频移 doppler_freq = linspace(-150, 150, num_channels); % 多普勒频移范围 doppler_shift = exp(1j * 2 * pi * doppler_freq' / N); % 多普勒频移向量 %% 生成多普勒时延 time_delay = round(rand(num_channels, 1) * num_taps); % 随机生成时延 channel = zeros(N, num_channels); for i = 1:num_channels channel(:, i) = circshift(doppler_shift(i, :)', time_delay(i)); end %% 发送OFDM符号 rx_symbols_cp = zeros(N+cp_len, num_symbols, num_channels); for i = 1:num_channels rx_symbols_cp(:, :, i) = tx_symbols_cp * diag(channel(:, i)); end %% 添加高斯白噪声 rx_symbols_cp_noisy = awgn(rx_symbols_cp, SNR, 'measured'); %% 移除循环前缀并进行FFT rx_symbols = rx_symbols_cp_noisy(cp_len+1:end, :, :); rx_data = fft(rx_symbols); %% 解调数据 rx_bits = reshape(rx_data, N*num_symbols*num_channels, 1) > 0.5; %% 计算误码率 num_errors = sum(xor(rx_bits, tx_data(:))); ber = num_errors / (N*num_symbols*num_channels); disp(['误码率:', num2str(ber)]); ``` 再次感谢您的指正,希望这次回答可以帮到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值