如何将空间频率从cycles/m转换为cycles/deg?
空间频谱单位转换:cycles/m 转 cycles/deg 的问题
我一直搞不懂这里面的非线性转换逻辑,想请教如何将单位为cycles/m(每米周期数)的频谱转换为cycles/deg(每度周期数)?
一维示例场景
以笔记本屏幕为例,屏幕有768像素,显示最高像素频率,MATLAB/Octave风格伪代码如下:
X = 768 x = 0:X-1 y = cos(2*pi/X*(X/2)*x)
该信号的频率为π弧度,即0.5 cycles/pixel(采样率为1像素)。生成频率向量:
w = linspace(0, 2*pi, length(x)) % 单位:弧度 f = linspace(0, 1, length(x)) % 单位:1/pixel 或 cycles/pixel
已知像素尺寸时,可转换为米为单位的空间位置和cycles/m为单位的频率。假设单像素尺寸为0.5mm:
xm = x*0.5e-3 % 图像空间位置,单位:米 fm = f/0.5e-3 % 频率,单位:cycles/m
绘制y与xm的关系图,可见波形为每毫米1个周期;绘制y的FFT与fm的关系图,峰值为1000 cycles/m(即每毫米1个周期),符合预期。
转换困惑与问题
假设观看距离为60cm,我尝试将fm转换为fdeg(单位:cycles/deg),写出如下代码:
fdeg = 1/(2*atan(1/fm)/(2*0.6)*180/pi)
计算结果为20.97 cycles/deg,但用小角度近似计算:1mm对应的角度约为1mm/0.6*180/pi=0.9549e-3度,即每0.9549e-3度1个周期,换算为1/0.9549e-3=10.47 cycles/deg,两者相差2倍,请问问题出在哪里?
内容的提问来源于stack exchange,提问作者divB
相关产品推荐
相关产品推荐

