【光纤通信】实验一、C语言实现AMI编码

196 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 在这里插入图片描述

#include <stdio.h>
#define maxSize 64
void input()
{
    FILE *fp;
    int bin[maxSize];
    int a[maxSize];
    int index = 0;
    int flag = 0;
    int i = 0;
    int temp = 0;
    fp = fopen("AMI.txt", "r");
    if (fp == NULL)
    {
        printf("数据错误!");
        return;
    }
    while (1)
    {
        flag = fscanf(fp, "%d", &bin[index]);
        if (flag == EOF)
        {
            break;
        }
        index++;
    }
    if (flag)
    {
        printf("AMI编码后:");
        for (i = 0; i < index; i++)
        {
            if (bin[i] == 0)
            {
                output(bin[i]);
                a[i] = bin[i];
            }
            else
            {
                temp++;
                a[i] = (temp & 0x01) ? 1 : -1;
                output(a[i]);
            }
            printf("%d  ", a[i]);
        }
    }
    printf("\n");
    fclose(fp);
}

int output(int bin){
    FILE *fp;
    char enter = '\n';
    fp = fopen("AMIOputput.txt","a");
    if(fp == NULL){
        printf("数据错误!");
        return;
    }
    fprintf(fp,"%d",bin);
    fclose(fp); 
}

int main()
{
    input();
    return 0;
}

AMI.txt : 1 0 0 110 0 1 0 1 0 1

AMIOputput.txt: 1 0 0 -110 0 -1 0 1 0 -1

下一篇:
【光纤通信】实验一、C语言实现HDB3编码

更多相关文章:
【通信工程】信息类,电子类,电气工程,自动化,计算机,软件工程,机电,等相关专业 全套学习指导